private async Task ObterFiltroRelatorio(RelatorioLeituraComunicadosDto relatorioDto, FiltroRelatorioLeituraComunicadosDto filtro, string usuarioLogadoRF)
        {
            var filtroRelatorio = new FiltroLeituraComunicadosDto();


            filtroRelatorio.Dre = await ObterNomeDre(filtro.CodigoDre);

            filtroRelatorio.Ue = await ObterNomeUe(filtro.CodigoUe);

            filtroRelatorio.Usuario = filtro.NomeUsuario;
            filtroRelatorio.RF      = usuarioLogadoRF;

            if (filtro.DataInicio == null)
            {
                filtro.DataInicio = new DateTime(filtro.Ano, 1, 1);
            }

            if (filtro.DataFim == null)
            {
                filtro.DataFim = new DateTime(filtro.Ano, 12, 31);
            }

            relatorioDto.Filtro = filtroRelatorio;
        }
        public async Task <IEnumerable <LeituraComunicadoDto> > ObterComunicadosPorFiltro(FiltroRelatorioLeituraComunicadosDto filtro)
        {
            var query = @"select comunicado.id as ComunicadoId, comunicado.titulo as Comunicado, comunicado.data_envio as DataEnvio, comunicado.data_expiracao as DataExpiracao
                          from comunicado ";

            if (filtro.Grupos != null && filtro.Grupos.Any())
            {
                query += $@" INNER JOIN comunidado_grupo cg ON comunicado.id = cg.comunicado_id ";
            }

            if (!string.IsNullOrEmpty(filtro.Turma))
            {
                query += $@" INNER JOIN comunicado_turma ct ON comunicado.id = ct.comunicado_id ";
            }

            query += " where comunicado.ano_letivo = @AnoLetivo ";

            if (filtro.Grupos != null && filtro.Grupos.Any())
            {
                query += $@" AND cg.grupo_comunicado_id = ANY(@Grupos) ";
            }

            if (!string.IsNullOrEmpty(filtro.NotificacaoId))
            {
                query += " and comunicado.id = @NotificacaoId ";
            }

            if (!string.IsNullOrEmpty(filtro.CodigoDre) && filtro.CodigoDre != "-99")
            {
                query += " and codigo_dre = @CodigoDre ";
            }

            if (filtro.CodigoDre == "-99")
            {
                query += " and codigo_dre is null ";
            }

            if (!string.IsNullOrEmpty(filtro.CodigoUe) && filtro.CodigoUe != "-99")
            {
                query += " and codigo_ue = @CodigoUe ";
            }

            if (filtro.CodigoUe == "-99")
            {
                query += " and codigo_ue is null ";
            }

            if (filtro.Semestre > 0)
            {
                query += " and semestre = @Semestre ";
            }

            if (!filtro.ListarComunicadosExpirados)
            {
                query += " and data_expiracao >= @DataExpiracao ";
            }

            query += " and date(data_envio) between @DataInicio and @DataFim and not comunicado.excluido ";

            if (!string.IsNullOrEmpty(filtro.Turma))
            {
                query += " and ct.turma_codigo = @Turma ";
            }

            using var conexao = new NpgsqlConnection(variaveisAmbiente.ConnectionStringSgp);
            return(await conexao.QueryAsync <LeituraComunicadoDto>(query.ToString(), new
            {
                NotificacaoId = long.Parse(!string.IsNullOrEmpty(filtro.NotificacaoId) ? filtro.NotificacaoId : "0"),
                filtro.AnoLetivo,
                filtro.CodigoDre,
                filtro.CodigoUe,
                filtro.Semestre,
                filtro.Grupos,
                filtro.Turma,
                DataInicio = filtro.DataInicio.GetValueOrDefault().Date,
                DataFim = filtro.DataFim.GetValueOrDefault().Date,
                DataExpiracao = DateTime.Now.Date
            }));
        }
 private async Task ObterDadosRelatorio(RelatorioLeituraComunicadosDto relatorioDto, FiltroRelatorioLeituraComunicadosDto filtro)
 {
     relatorioDto.LeituraComunicadoDto = await mediator.Send(new ObterDadosLeituraComunicadosQuery(filtro));
 }
Exemplo n.º 4
0
 public ObterDadosLeituraComunicadosQuery(FiltroRelatorioLeituraComunicadosDto filtro)
 {
     Filtro = filtro;
 }