public Task <List <Plano.List> > List(int?DDD, int?tipoPlanoId, int?operadoraId, int?planoId) { try { if (DDD == null) { throw new Exception("DDD é um campo obrigatório para realizar a busca"); } var dddValido = _dDDRepository.GetByDDD(new DDD.DDD() { Codigo = (int)DDD }); if (dddValido == null) { throw new Exception($"DDD {DDD} inválido. Informe um campo de DDD válido"); } var planos = _planoRepository.List(new Plano.Filter() { DDD = dddValido.Id, TipoPlanoId = tipoPlanoId, OperadoraId = operadoraId, PlanoId = planoId }); var result = new List <Plano.List>(); foreach (var plano in planos) { var item = new Plano.List(); item.Id = plano.Id; item.Minutos = plano.Minutos; item.FranquiaInternet = plano.FranquiaInternet; item.Valor = plano.Valor; item.TipoPlanoId = plano.TipoPlanoId; item.OperadoraId = plano.OperadoraId; item.StatusRegistro = plano.StatusRegistro; item.DDD = _dDDRepository.ListByPlano(new Domain.DDD.Filter() { PlanoId = plano.Id }).ToList(); result.Add(item); } return(Task.FromResult(result)); } catch (Exception ex) { _logger.LogError(ex, "PlanoService - List"); throw ex; } }