コード例 #1
0
 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 }));
     }
 }
コード例 #2
0
        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);
            }
        }