Где разместить логику сохранения DTO на диске в 3-слойном приложении?

#c# #.net #io #dto

Вопрос:

Мне нужно сохранить входящий DTO на диске для последующего тестирования. Однако мой объект DTO в настоящее время доступен только в контроллере, что кажется неподходящим местом для размещения логики сохранения файлов на диске. Приведенный ниже код показывает, как он в настоящее время реализован в контроллере.

 public bool OpretOrdre(OrdreRequestDto ordre)
        {
            if(Convert.ToBoolean(ConfigurationManager.AppSettings["saveDtoOrder"]))
            {
                string json = JsonConvert.SerializeObject(ordre, Formatting.Indented);
                var filename = string.IsNullOrEmpty(ordre.Id) ? Guid.NewGuid().ToString() : ordre.Id;
                File.WriteAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DTO_Orders", $@"{filename}.json"), json);
            }
 

В моем методе контроллера я выполняю вызов уровня обслуживания, который получает доменную версию DTO. Я думал об отправке DTO на уровень обслуживания, но в идеале это должно работать только с объектами домена.

Каков был бы здесь наилучший подход? Я не уверен, какие существуют рекомендации по сохранению DTO на диске. Немного поискав в гугле, я не получил много информации по этой теме.