public static ContractorDTO ConvertToDTO(this Contractor model, IMapper _mapper) { ContractorDTO contractor = _mapper.Map <Contractor, ContractorDTO>(model); contractor.Projects = model.Projects.Select(p => p.ConvertToBaseOnly(_mapper)).ToList(); return(contractor); }
public async ValueTask <IActionResult> Get(int id, bool projects = false) { Contractor contractor = null; if (!projects) { contractor = await _repo.Item() .Where(c => c.Id == id) .FirstOrDefaultAsync(); if (contractor != null) { ContractorBase model = contractor.Convert <Contractor, ContractorBase>(_mapper); return(Ok(model)); } } else { contractor = await _repo.Item() .Where(c => c.Id == id) .Include(c => c.Projects) .ThenInclude(p => p.Comments) .FirstOrDefaultAsync(); if (contractor != null) { ContractorDTO model = contractor.ConvertToDTO(_mapper); ContractorProjectDTO dto = new ContractorProjectDTO { Contractor = model, Total = contractor.Projects.Count() }; return(Ok(dto)); } } return(NotFound(new ErrorDTO { Message = "Item not found" })); }