namespace Core.Services; /// /// Implementation of INoteNamingService that provides note naming conventions. /// Uses "#" as the prefix for page notes and meeting notes. /// public class NoteNamingService : INoteNamingService { private const string PageNotePrefix = "#"; private const string MeetingNotePrefix = "#Meeting Notes"; /// public string GetMeetingNoteTitle(DateTime meetingDate) { return $"{MeetingNotePrefix} {meetingDate:MM/dd/yyyy}"; } /// public string GetPageNoteTitle(string pageIdentifier) { if (string.IsNullOrWhiteSpace(pageIdentifier)) { throw new ArgumentException("Page identifier cannot be null or empty", nameof(pageIdentifier)); } return $"{PageNotePrefix}{pageIdentifier}"; } /// public bool IsPageNote(string noteTitle) { if (string.IsNullOrWhiteSpace(noteTitle)) { return false; } return noteTitle.StartsWith(PageNotePrefix, StringComparison.Ordinal); } /// public bool IsMeetingNote(string noteTitle) { if (string.IsNullOrWhiteSpace(noteTitle)) { return false; } return noteTitle.StartsWith(MeetingNotePrefix, StringComparison.Ordinal); } }