Exemplo n.º 1
0
        public async Task <ActionResult> PesquisarOcorrenciasPorFiltros([FromBody] OcorrenciaFiltroDto ocorrenciaFiltroDto)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            ICollection <OcorrenciaResultDto> listaResult = await _ocorrenciaService.PesquisarOcorrenciasPorFiltros(ocorrenciaFiltroDto);

            if (listaResult == null || listaResult.Count == 0 || listaResult.Contains(null))
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "Nenhuma ocorrência foi encontrada!",
                }));
            }

            return(Ok(listaResult));
        }
        public async Task <ICollection <OcorrenciaResultDto> > PesquisarOcorrenciasPorFiltros(OcorrenciaFiltroDto ocorrenciaFiltroDto)
        {
            if (ocorrenciaFiltroDto == null)
            {
                Notificar("O id informado é inválido!");
                return(null);
            }

            return(await _ocorrenciaRepository.PesquisarOcorrenciasPorFiltros(ocorrenciaFiltroDto));
        }
        public async Task <ICollection <OcorrenciaResultDto> > PesquisarOcorrenciasPorFiltros(OcorrenciaFiltroDto ocorrenciaFiltroDto)
        {
            try
            {
                IQueryable <Ocorrencia> query = _context.Ocorrencias;

                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.Titulo))
                {
                    query = query.Where(oco => oco.Titulo.Contains(ocorrenciaFiltroDto.Titulo));
                }

                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.Titulo))
                {
                    query = query.Where(oco => oco.Titulo.Contains(ocorrenciaFiltroDto.Titulo));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.DataHoraInicio))
                {
                    query = query.Where(oco => oco.DataHoraInicio >= DateTime.Parse(ocorrenciaFiltroDto.DataHoraInicio));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.DataHoraFim))
                {
                    query = query.Where(oco => oco.DataHoraFim <= DateTime.Parse(ocorrenciaFiltroDto.DataHoraFim));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.ChamadoTI))
                {
                    query = query.Where(oco => oco.ChamadoTI.Contains(ocorrenciaFiltroDto.ChamadoTI));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.ChamadoFornecedor))
                {
                    query = query.Where(oco => oco.ChamadoFornecedor.Contains(ocorrenciaFiltroDto.ChamadoFornecedor));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.OcorrenciaCCM))
                {
                    query = query.Where(oco => oco.OcorrenciaCCM.Contains(ocorrenciaFiltroDto.OcorrenciaCCM));
                }
                if (!ocorrenciaFiltroDto.Acionamento.Equals(null))
                {
                    query = query.Where(oco => oco.Acionamento.Equals(ocorrenciaFiltroDto.Acionamento));
                }
                if (!ocorrenciaFiltroDto.Impacto.Equals(null))
                {
                    query = query.Where(oco => oco.Acionamento.Equals(ocorrenciaFiltroDto.Acionamento));
                }
                if (!string.IsNullOrEmpty(ocorrenciaFiltroDto.StatusAtualOcorrencia))
                {
                    query = query.Where(oco => oco.StatusAtualOcorrencia.ToString().Equals(ocorrenciaFiltroDto.StatusAtualOcorrencia));
                }
                if (!ocorrenciaFiltroDto.UsuarioId.Equals(null))
                {
                    query = query.Where(oco => oco.UsuarioId.Equals(ocorrenciaFiltroDto.UsuarioId));
                }

                ICollection <OcorrenciaResultDto> listaResult = await query
                                                                .DefaultIfEmpty()
                                                                .Select(oco => new OcorrenciaResultDto
                {
                    Id                        = oco.Id.ToString(),
                    IncOcorrecia              = oco.IncOcorrencia.ToString(),
                    Titulo                    = oco.Titulo,
                    DataHoraInicio            = oco.DataHoraInicio.ToString("dd/MM/yyyy HH:mm:ss"),
                    DataHoraFim               = string.IsNullOrEmpty(oco.DataHoraFim.ToString()) ? null : oco.DataHoraFim.ToString(),
                    DataHoraUltimaAtualizacao = oco.DataHoraUltimaAtualizacao.ToString("dd/MM/yyyy HH:mm:ss"),
                    ChamadoTI                 = oco.ChamadoTI,
                    ChamadoFornecedor         = oco.ChamadoFornecedor,
                    OcorrenciaCCM             = oco.OcorrenciaCCM,
                    Acionamento               = oco.Acionamento ? "SIM" : "NAO",
                    Impacto                   = oco.Impacto ? "SIM" : "NAO",
                    DescricaoImpacto          = oco.DescricaoImpacto,
                    StatusAtualOcorrencia     = oco.StatusAtualOcorrencia.ToString(),
                    UsuarioId                 = oco.UsuarioId.ToString(),
                    DescricaoUsuario          = oco.Usuario.UserName + " - " + oco.Usuario.NomeCompleto,
                }).ToListAsync();

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