public static EscolaDTO Map(Escola escola) { if (escola is null) { return(null); } var contato = new ContatoDTO(escola.Contato.Telefone, escola.Contato.Email, escola.Contato.Site); var tipoLocalizacao = new TipoLocalizacaoDTO(escola.Endereco.TipoLocalizacaoId, Enumeration.FromValue <TipoLocalizacao>(escola.Endereco.TipoLocalizacaoId).Descricao); var endereco = new EnderecoDTO(escola.Endereco.Logradouro, escola.Endereco.Numero, escola.Endereco.Complemento, escola.Endereco.Bairro, escola.Endereco.Cep, tipoLocalizacao); var turmas = escola.Turmas?.Select(t => { var tipoTurno = new TipoTurnoDTO(t.TipoTurnoId, Enumeration.FromValue <TipoTurno>(t.TipoTurnoId).Descricao); return(new TurmaDTO(t.Id, t.Codigo, tipoTurno, t.QuantidadeAlunos)); }); return(new EscolaDTO(escola.Id, escola.Nome, escola.Codigo, contato, endereco, turmas)); }
public EnderecoDTO( string logradouro, string numero, string complemento, string bairro, string cep, TipoLocalizacaoDTO tipoLocalizacao) { Logradouro = logradouro; Numero = numero; Complemento = complemento; Bairro = bairro; Cep = cep; TipoLocalizacao = tipoLocalizacao; }
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()); }