Менеджеры сохраняют информацию о продажах за день в CSV файле стандартного формата. Файл помещается в папку на сервере. На сервере приложение, запущенное как служба Windows отслеживает изменения в папке и, при появлении в ней новых файлов, выполняет их разбор и загрузку информации из них в базу данных. Файлы загружаются на сервер не менее одного раза в день.
Имя файла состоит из фамилии менеджера и даты в следующем формате: SeconName_DDMMYYYY.csv.
CSV файл имеет следующую структуру: Дата, Клиент, Товар, Сумма.
Данные из этих столбцов загружаются в базу данных.
-
Наличие клиентов двух видов: консольное приложение и служба Windows. В каждый момент времени может работать только один клиент.
-
Должна присутствовать возможность обработки двух и более файлов одновременно. Для этого можно использовать стандартные средства C# для работы с потоками (Threads, TPL).
-
Реализовать механизм конкурентного доступа к БД (SELECT, INSERT, UPDATE) при обработке нескольких файлов одновременно.
-
Работа с базой данных должна происходить только с использованием Entity Framework, прямая работа с БД не допускается.
-
Модульность и N-уровневая архитектура приложения. Решение должно содержать сборки для: слоя доступа к данным, слоя бизнес-логики и слоев клиентов; реализация клиентов не должна приводить к изменению в предшествующих слоях.
-
Классы должны быть реализованы с использованием ООП.
-
Управление ресурсами и использование интерфейса IDisposable (файлы, объекты контекстов и т.д.)
-
Использование конфигурации или ресурсов для храниения настроек приложения/службы.
- Использование исключений.