public async Task <ActionResult> PesquisarTramitesPorFiltros([FromBody] TramiteFiltroDto tramiteFiltroDto)
        {
            ICollection <TramiteResultDto> listaTramiteResultDto = await _tramiteService.PesquisarTramitesPorFiltros(tramiteFiltroDto);

            if (listaTramiteResultDto == null || listaTramiteResultDto.Count == 0 || listaTramiteResultDto.Contains(null))
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "Nenhum trâmite foi encontrado!",
                }));
            }

            return(Ok(listaTramiteResultDto));
        }
        public async Task <ICollection <TramiteResultDto> > PesquisarTramitesPorFiltros(TramiteFiltroDto tramiteFiltroDto)
        {
            if (tramiteFiltroDto.Equals(null))
            {
                Notificar("O filtro informado é inválido!");
                return(null);
            }

            return(await _tramiteRepository.PesquisarTramitesPorFiltros(tramiteFiltroDto));
        }
Example #3
0
        public async Task <ICollection <TramiteResultDto> > PesquisarTramitesPorFiltros(TramiteFiltroDto tramiteFiltroDto)
        {
            try
            {
                IQueryable <Tramite> query = _context.Tramites;

                if (!string.IsNullOrEmpty(tramiteFiltroDto.Descricao))
                {
                    query = query.Where(tra => tra.Descricao.Contains(tramiteFiltroDto.Descricao));
                }
                if (!string.IsNullOrEmpty(tramiteFiltroDto.DataHoraInicio) && !string.IsNullOrEmpty(tramiteFiltroDto.DataHoraFim))
                {
                    query = query.Where(tra => tra.DataHora >= DateTime.Parse(tramiteFiltroDto.DataHoraInicio) &&
                                        tra.DataHora <= DateTime.Parse(tramiteFiltroDto.DataHoraFim));
                }
                if (!string.IsNullOrEmpty(tramiteFiltroDto.Solucao))
                {
                    query = query.Where(tra => tra.Solucao.ToString().Equals(tramiteFiltroDto.Solucao));
                }
                if (!string.IsNullOrEmpty(tramiteFiltroDto.OcorrenciaId))
                {
                    query = query.Where(tra => tra.OcorrenciaId.ToString().Equals(tramiteFiltroDto.OcorrenciaId));
                }
                if (!string.IsNullOrEmpty(tramiteFiltroDto.UsuarioId))
                {
                    query = query.Where(tra => tra.UsuarioId.ToString().Equals(tramiteFiltroDto.UsuarioId));
                }

                ICollection <TramiteResultDto> listaResult = await query
                                                             .DefaultIfEmpty()
                                                             .Select(tra => new TramiteResultDto
                {
                    Id                  = tra.Id.ToString(),
                    IncTramite          = tra.IncTramite.ToString(),
                    Descricao           = tra.Descricao,
                    DataHora            = tra.DataHora.ToString("dd/MM/yyyy HH:mm:ss"),
                    Solucao             = tra.Solucao ? "SIM" : "NAO",
                    OcorrenciaId        = tra.OcorrenciaId.ToString(),
                    UsuarioId           = tra.UsuarioId.ToString(),
                    DescricaoOcorrencia = tra.Ocorrencia.IncOcorrencia.ToString() + " - " + tra.Ocorrencia.Titulo,
                    DescricaoUsuario    = tra.Usuario.UserName + " - " + tra.Usuario.NomeCompleto,
                }).ToListAsync();

                return(listaResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }