Skip to content

AlexeyShpavda/SalesStatisticsService

Repository files navigation

SalesStatisticsService

Описание

Менеджеры сохраняют информацию о продажах за день в CSV файле стандартного формата. Файл помещается в папку на сервере. На сервере приложение, запущенное как служба Windows отслеживает изменения в папке и, при появлении в ней новых файлов, выполняет их разбор и загрузку информации из них в базу данных. Файлы загружаются на сервер не менее одного раза в день.

Имя файла состоит из фамилии менеджера и даты в следующем формате: SeconName_DDMMYYYY.csv.

CSV файл имеет следующую структуру: Дата, Клиент, Товар, Сумма.

Данные из этих столбцов загружаются в базу данных.

Требования

  • Наличие клиентов двух видов: консольное приложение и служба Windows. В каждый момент времени может работать только один клиент.

  • Должна присутствовать возможность обработки двух и более файлов одновременно. Для этого можно использовать стандартные средства C# для работы с потоками (Threads, TPL).

  • Реализовать механизм конкурентного доступа к БД (SELECT, INSERT, UPDATE) при обработке нескольких файлов одновременно.

  • Работа с базой данных должна происходить только с использованием Entity Framework, прямая работа с БД не допускается.

  • Модульность и N-уровневая архитектура приложения. Решение должно содержать сборки для: слоя доступа к данным, слоя бизнес-логики и слоев клиентов; реализация клиентов не должна приводить к изменению в предшествующих слоях.

  • Классы должны быть реализованы с использованием ООП.

  • Управление ресурсами и использование интерфейса IDisposable (файлы, объекты контекстов и т.д.)

  • Использование конфигурации или ресурсов для храниения настроек приложения/службы.

Дополнительные требования

  • Использование исключений.