Где в моем приложении принадлежат DTO, которые используются для экспорта и импорта в структурированном формате? - PullRequest
1 голос
/ 27 октября 2010

Наши пользователи должны иметь возможность экспортировать данные в формате CSV, редактировать некоторые записи и загружать данные снова.Данные не сопоставляются с сущностями, можно сказать, что граф объектов выровнен для соответствия рабочему процессу на основе Excel.

Сейчас это происходит в контроллерах, потому что я думал, что эти классы DTO были моделями представления.Пахнет, но у меня нет четкой идеи, как это исправить.Есть ли образец, которому я мог бы / должен следовать?

Спасибо!

1 Ответ

1 голос
/ 27 октября 2010

Начните с абстрагирования этой логики в интерфейс, содержащий необходимый метод.Реализуйте этот интерфейс против формата CSV.Передайте интерфейс в конструктор контроллера.Используйте DI, чтобы ввести правильную реализацию.В действии контроллера вызовите метод на интерфейсе.

Если вы хотите вернуть CSV напрямую из действия вашего контроллера, вы можете написать пользовательский ActionResult , такой как CsvActionResult, который будет принимать модель и сериализовать ее в CSV, чтобы в вашем действии контроллера вы return new CsvResult(someModel).

...