Я создаю приложение .NET Core Web API, где люди могут найти планы строительства домов.
Приложение имеет таблицу базы данных, которая содержит такую информацию, как адрес, почтовый индекс, город и идентификатор.
PDF-файлы хранятся в файловой системе и группируются в папки с тем же идентификатором, что и в базе данных.
Это мой текущий код контроллера:
[HttpGet]
public async Task<ActionResult<List<BuildingplanDto>>> Get(
[FromQuery] string street,
[FromQuery] string city,
[FromQuery] string housenumber)
{
//Retrieve building plan info from database
List<Buildingplan> buildingplans = await _BuildingplanService.FindAsync(street, city, housenumber);
List<BuildingplanDto> buildingplanDtos = new List<BuildingplanDto>();
BuildingplanDto buildingplanDto;
foreach (Buildingplan buildingplan in buildingplans)
{
//Map database entity to Dto
buildingplanDto = _mapper.Map<Buildingplan, BuildingplanDto>(buildingplan);
//Add folders from the filesystem to the Dto
buildingplanDto.Folders = _documentService.GetFolders(buildingplan.DossierId);
buildingplanDtos.Add(buildingplanDto);
}
return Ok(buildingplanDtos);
}
Однако этот код не выглядит правильным; В контроллере слишком много логики, которую я хочу поместить в другое место. Хотя я не знаю, где его поставить.
Может ли кто-нибудь дать мне указание, куда поместить эту логику? Я также открыт для других советов.