public async Task <List <EscolaDTO> > Handle(ObterEscolasPaginadasQuery request, CancellationToken cancellationToken) { if (!request.IsValid()) { throw new DomainException("Request inválido"); } var escolas = await _escolaRepository.ObterEscolasPaginadas(request.Pagina, request.TamanhoPagina, true); if (escolas.IsNullOrEmpty()) { return(new List <EscolaDTO>()); } return(escolas.Select(e => { var contato = new ContatoDTO(e.Contato.Telefone, e.Contato.Email, e.Contato.Site); var tipoLocalizacao = new TipoLocalizacaoDTO(e.Endereco.TipoLocalizacaoId, Enumeration.FromValue <TipoLocalizacao>(e.Endereco.TipoLocalizacaoId).Descricao); var endereco = new EnderecoDTO(e.Endereco.Logradouro, e.Endereco.Numero, e.Endereco.Complemento, e.Endereco.Bairro, e.Endereco.Cep, tipoLocalizacao); return new EscolaDTO(e.Id, e.Nome, e.Codigo, contato, endereco, e.Turmas.Count()); }).ToList()); }
public Task <IActionResult> ObterEscolasPaginadas([FromQuery] ObterEscolasPaginadasQuery query) { return(QueryAsync <ObterEscolasPaginadasQuery, List <EscolaDTO> >(query)); }