Это проект апи для приложения на Angular.js
Данный проект для производетля зерен кофе. Производителю кофе необходим сайт на котором он может показывать свой товар будущим покупателям. Покупатели могут регистрироваться и оставлять коометнарии под определенным сортом кофе, или оставлять глобальные комментарии о производителе зерен кофе. В комментариях можно оставить изображение, и также на комментарии можно отвечать, что доступно только модерации. Пользователь также может искать нужный кофе. Модерация сайта может редактировать, удалять комментарии, добавлять, менять, удалять информацию о зернах кофе.
из Host.csproj ввести dotnet run. Или в IDE выбрать Host.csproj
Asp.net Core + EfCore + PosgresSql. Также для DTO используется Mapster
Так как это апи, то используется протокол OAuth 2.0 на jwt токене и refresh токене
- Domain
- EfCore
- Services
- Host
Это НЕ Domain из DDD. Здесь хранятся:
- общие константы: разделить для хранения фотографий
- enums: тип комментария, роль пользователя
- исключения
- методы расширения: методы для хеширования паролей
- options для конфигурации: путь хранения изображений и конфигурация для jwt токена
Содержит в себе собственную реализацию репозитория, DbContex, модели для Ef Core, конифугурация относящуюся к определенным моделям Ef Core, а также query хелперы
Здесь хранятся сервисы и бизнес логика. В Common находится абстрактный класс который содержит в себе базовые CRUD методы для работы с БД. От меня потребовал тимлид так сделать, а так я бы не усложнял данный проект ненужным абстрактным классом, он никакую проблему не решает. Contracts содержит в себе интерфейсы для сервисов. Dtos содержит в себе разлиные DTO. Папка имеет субкаталоги относящиеся к сервисам, например Auth, Comment и т.д. MappingConfig содержит в себе конфигурация автомапера для Dto. Реализация сервисов лежит вне папок.
Здесь хранятся контроллеры, константы для конфигурации аутентификации/авторизации, хелперы для валидации, входящие модели в контроллеры, конфигурация маппинга между моделями контроллеров и Dto, options для cors и bearer токена, сервис для работы с текущем пользователем, кастомные аттрибуты валидации, мидлвееры, и Program.cs для запуска проекта