DocsVision_Test

Система регистрации писем

Решение Registration состоит из следующих проектов:

  • Registration.Api - обработка http-запросов
  • Registration.DataInterface - интерфейс взаимодействия с БД
  • Registration.DataInterface.Sql - реализация интерфейса взаимодействия с БД
  • Registration.DataInterface.sql.Test - unit тесты
  • Registration.Logger - логирование
  • Registration.Model - классы основных сущностей
  • Registrstion.WinForms - пользовательский интерфейс

Registration.Api содержит в себе два класса LetterController и WorkerController, в которых описаны методы, позволяющие обработать http-запросы:

  • Добавить письмо в БД
  • Получить имя отправителя
  • Поличить список имен получателей
  • Получить упорядоченный список писем (по дате, по названию, по имени отправителя)
  • Удалить письмо
  • Изменить текст письма, название письма, отправителя и спосок получателей
  • Добавить нового сотрудника в БД
  • Получить сотрудника по логину
  • Получить список всех сотрудников

Registration.DataInterface содержит описание интерфейса работы с БД (ILetter интерфейс для писем и IWorker для сотрудников). Интерфейс включает в себя все функции, для которых описаны http-запросы.

Registration.DataInterface.Sql содержит реализацию интерфейса Registration.DataInterface.

Registration.DataInterface.sql.Test содержит unit тесты для проверки корректной функциональности методов работы с БД.

Registration.Model содержит два класса: Letter и User.

Письмо (Letter) имеет следующие атрибуты:

  • id
  • название
  • текст
  • дата регистрации/изменения
  • id отправителя
  • список id получателей

Пользователь (User) имеет следующие атрибуты:

  • id
  • логин (должен быть уникальным)
  • имя

Registrstion.WinForms реализует пользовательский интерфейс. Содержит стартовую форму Registration из которой можно попасть на формы:

  • AddLetters позволяет зарегистрировать новое письмо
  • ShowAllLetters - просмотр всех писем. При выборе письма отображается само письмо и есть возможность изменить или удалить его из БД.

Если при добавлении нового письма указан не существующий в БД сотрудник, то система предложит добавить его в БД.