public IActionResult Filtrar(FiltroServicoViewModel filtro) { try { var lista = ServicoPrestadoRepository.Filtrar(filtro); return(Ok(lista)); } catch (Exception e) { return(BadRequest(new { Erro = true, Mensagem = e.Message })); } }
public List <ServicosPrestados> Filtrar(FiltroServicoViewModel filtro) { using (WebsiteDaSaudeContext ctx = new WebsiteDaSaudeContext()) { List <ServicosPrestados> listaNova = new List <ServicosPrestados>(); if (filtro.IdLocal != null && filtro.IdServico == null && filtro.IdSituacao == null) { //filtro por local var lista = ctx.ServicosPrestados .Where(x => x.IdLocal == filtro.IdLocal) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else if (filtro.IdServico != null && filtro.IdLocal == null && filtro.IdSituacao == null) { // filtro por serviço var lista = ctx.ServicosPrestados .Where(x => x.IdServico == filtro.IdServico) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else if (filtro.IdSituacao != null && filtro.IdServico == null && filtro.IdLocal == null) { // filtro por situação var lista = ctx.ServicosPrestados .Where(x => x.IdSituacao == filtro.IdSituacao) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else if (filtro.IdLocal != null && filtro.IdServico != null && filtro.IdSituacao == null) { //filtro por local e serviço var lista = ctx.ServicosPrestados .Where(x => x.IdLocal == filtro.IdLocal && x.IdServico == filtro.IdServico) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else if (filtro.IdLocal != null && filtro.IdSituacao != null && filtro.IdServico == null) { // filtro por local e situaçao var lista = ctx.ServicosPrestados .Where(x => x.IdLocal == filtro.IdLocal && x.IdSituacao == filtro.IdSituacao) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else if (filtro.IdServico != null && filtro.IdSituacao != null && filtro.IdLocal == null) { // filtro por serviço e situação var lista = ctx.ServicosPrestados .Where(x => x.IdServico == filtro.IdServico && x.IdSituacao == filtro.IdSituacao) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } else { // filtro por local, serviço e situação var lista = ctx.ServicosPrestados .Where(x => x.IdServico == filtro.IdServico && x.IdSituacao == filtro.IdSituacao && x.IdLocal == filtro.IdLocal) .Include(x => x.IdServicoNavigation.IdCategoriaNavigation) .Include(x => x.IdLocalNavigation) .Include(x => x.IdSituacaoNavigation) .ToList(); listaNova = lista; } foreach (var item in listaNova) { item.IdSituacaoNavigation.ServicosPrestados = null; item.IdLocalNavigation.ServicosPrestados = null; item.IdServicoNavigation.ServicosPrestados = null; item.IdServicoNavigation.IdCategoriaNavigation.Servicos = null; } return(listaNova); } }