项目作者: AlexeyShpavda

项目描述 :
Saving Sales Information to Database
高级语言: C#
项目地址: git://github.com/AlexeyShpavda/SalesStatisticsService.git
创建时间: 2018-12-11T18:59:31Z
项目社区:https://github.com/AlexeyShpavda/SalesStatisticsService

开源协议:MIT License

下载


SalesStatisticsService

Описание

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

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

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

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

Требования

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

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

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

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

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

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

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

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

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

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