namespace BinaryDad.Notes.Services { public class FileNoteService : INoteService { private readonly string? defaultFileName; public FileNoteService(IConfiguration configuration) { defaultFileName = configuration["ContentFilePath"]; CheckFile(defaultFileName); } public string Get(string? noteName) { CheckFile(noteName); return File.ReadAllText(GetFileName(noteName)); } public void Save(string content, string? noteName) { File.WriteAllText(GetFileName(noteName), content); } private void CheckFile(string noteName) { var fileName = GetFileName(noteName); // ensure initialized if (!File.Exists(fileName)) { Save("Hi! Feel free to start typing. Everything will be saved soon after you are done typing.", fileName); } } private string GetFileName(string? noteName) => string.IsNullOrWhiteSpace(noteName) ? defaultFileName : noteName; } }