На рынок выходит новый фотосалон «YouPhoto». Салон занимается печатью фотографий разного формата и дополнительными услугами, например, оформление картин (накатка картин на пенакартон, оформление рамками и т.д.). У фирмы есть ряд салонов. Некоторое оборудование дорогостоящее и имеется не во всех филиалах. Салону нужна система заказа товаров. Система состоит из двух частей. Первая часть предназначена для клиентов. Клиент может в систему загрузить фотографии, заказать часть из них на печать и выбрать опции, связанные с оформлением. При необходимости выбрать способ получения фотографий (само-вывоз, получение в салоне и т.д.) Вторая часть предназначена для менеджеров. Менеджер должен уметь собрать заказы распределить их по салонам для минимизации расходов по доставке и др. Менеджер и клиенты должны иметь возможность отслеживать статус заказа.
Содержит в себе основный конфигурации проекта - AppSettings.cs - Класс для работы с настройками приложения, такими как тип логирования и количество логирования.
Классы обработки HTTP-запросов и возврат HTTP-ответов. Запросы КЛИЕНТСКОЙ части будут посылаться на "адрес сервера"/api/[controller] и уже оттуда будет воспроизводиться необходимый код СЕРВИСОВ.
Классы для работы с базами данных. Непосредственное подключение к базе данных по адресу из appsettings.json ("DefaultDatabaseConnection") и выполнение SQL запросов от сервисов.
Вспомогательные классы, предоставляющие общие функции. Прим: DatabaseHelper.cs: Вспомогательный класс для работы с базой данных. Позволяет выполнять "прямые" SQL. Иными словами - принимает строку SQL запроса и выполняет его для контекста БД.
Представление сущностей для приложения. Здесь описываются основные классы с полями. Прим: User с полями UserID, Username, Role и т.д. Используется в качестве структур для запросов контроллеров (RegisterRequest, LoginRequest) и структур таблиц в Базах данных (User).
Реализация основных функций бизнес логики сервера. Здесь описывается основная функциональность сервера, которая будет вызвана при запросах HTTP ИЗ контроллеров. Пример: на контроллер UserController поступает запрос api/register. Функция, отвечающая за этот запрос вызывает сервис _authenticationService.Register и передает параметры тела запроса. Затем обрабатывает нужные данные, работает с БД и в случае успеха генерирует JWT токен для сессии пользователя, отдает его в ответе Ok.
Карагодин Андрей - @MineShadow7
Винокуров Иван - @LeakMachine
Дмитрий Неделин - @STELLSAN