Пример #1
0
        public async Task <IActionResult> ObterPorMes([FromQuery] CalendarioEventosFiltroDto filtro, int mes, [FromServices] IConsultasEvento consultasEvento)
        {
            var listaRetorno = await consultasEvento.ObterQuantidadeDeEventosPorDia(filtro, mes);

            if (listaRetorno.Any())
            {
                return(Ok(listaRetorno));
            }
            else
            {
                return(StatusCode(204));
            }
        }
Пример #2
0
        public async Task <IActionResult> ObterPorDia(int dia, int mes, [FromQuery] CalendarioEventosFiltroDto filtro, [FromServices] IConsultasEvento consultasEvento)
        {
            var retorno = await consultasEvento.ObterEventosPorDia(filtro, mes, dia);

            if (retorno.Any())
            {
                return(Ok(retorno));
            }
            else
            {
                return(StatusCode(204));
            }
        }
Пример #3
0
        public async Task <IActionResult> ObterMeses([FromServices] IConsultasEvento consultasEvento,
                                                     [FromQuery] CalendarioEventosFiltroDto calendarioEventoMesesFiltro)

        {
            var retorno = await consultasEvento.ObterQuantidadeDeEventosPorMeses(calendarioEventoMesesFiltro);

            if (retorno.Any())
            {
                return(Ok(retorno));
            }
            else
            {
                return(StatusCode(204));
            }
        }
        public async Task <IEnumerable <CalendarioTipoEventoPorDiaDto> > ObterQuantidadeDeEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes)
        {
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            var perfilAtual = servicoUsuario.ObterPerfilAtual();

            var listaQuery = await repositorioEvento.ObterQuantidadeDeEventosPorDia(calendarioEventosMesesFiltro, mes, usuario, perfilAtual, usuario.TemPerfilSupervisorOuDiretor(),
                                                                                    usuario.PodeVisualizarEventosOcorrenciaDre(),
                                                                                    usuario.PodeVisualizarEventosLibExcepRepoRecessoGestoresUeDreSme());

            List <CalendarioTipoEventoPorDiaDto> listaRetorno = new List <CalendarioTipoEventoPorDiaDto>();

            if (listaQuery.Any())
            {
                var listaDiasEventos = listaQuery.GroupBy(a => a.Dia).ToList();

                listaDiasEventos.ForEach(a =>
                {
                    var tipoEventos = a.GroupBy(b => b.TipoEvento).Select(b => b.Key).ToList();
                    listaRetorno.Add(new CalendarioTipoEventoPorDiaDto()
                    {
                        Dia         = a.Key,
                        TiposEvento = tipoEventos.ToArray(),
                    });
                });
            }

            return(listaRetorno);
        }
        public async Task <IEnumerable <CalendarioEventosMesesDto> > ObterQuantidadeDeEventosPorMeses(CalendarioEventosFiltroDto calendarioEventosMesesFiltro)
        {
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            return(await repositorioEvento.ObterQuantidadeDeEventosPorMeses(calendarioEventosMesesFiltro, usuario, usuario.PerfilAtual, usuario.PodeVisualizarEventosOcorrenciaDre(),
                                                                            usuario.PodeVisualizarEventosLibExcepRepoRecessoGestoresUeDreSme()));
        }
        public async Task <IEnumerable <CalendarioEventosNoDiaRetornoDto> > ObterEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes, int dia)
        {
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            return(await repositorioEvento.ObterEventosPorDia(calendarioEventosMesesFiltro, mes, dia, usuario, usuario.PerfilAtual,
                                                              usuario.TemPerfilSupervisorOuDiretor(), usuario.PodeVisualizarEventosOcorrenciaDre(),
                                                              usuario.PodeVisualizarEventosLibExcepRepoRecessoGestoresUeDreSme()));
        }
Пример #7
0
        public async Task <IEnumerable <CalendarioEventosNoDiaRetornoDto> > ObterEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes, int dia)
        {
            var query = new StringBuilder();

            query.AppendLine("select id, e.descricao,");
            query.AppendLine("case");
            query.AppendLine("when e.dre_id is not null then 'DRE'");
            query.AppendLine("when e.ue_id is not null then 'UE'");
            query.AppendLine("when e.ue_id is null and e.dre_id is null then 'SME'");
            query.AppendLine("end as TipoEvento");
            query.AppendLine("from evento e");
            query.AppendLine("where e.excluido = false");
            query.AppendLine("and extract(month from e.data_inicio) = @mes");
            query.AppendLine("and extract(day from e.data_inicio) = @dia");

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and e.dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and e.tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and e.ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and e.ue_id is null and e.dre_id is null");
            }

            query.AppendLine("union distinct");
            query.AppendLine("select id, e.descricao, ");
            query.AppendLine("case");
            query.AppendLine("when e.dre_id is not null then 'DRE'");
            query.AppendLine("when e.ue_id is not null then 'UE'");
            query.AppendLine("when e.ue_id is null and e.dre_id is null then 'SME'");
            query.AppendLine("end as TipoEvento");
            query.AppendLine("from evento e");
            query.AppendLine("where e.excluido = false");
            query.AppendLine("and extract(month from e.data_fim) = @mes");
            query.AppendLine("and extract(day from e.data_fim) = @dia");

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and e.dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and e.tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and e.ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and e.ue_id is null and e.dre_id is null");
            }

            return(await database.Conexao.QueryAsync <CalendarioEventosNoDiaRetornoDto>(query.ToString(), new
            {
                IdTipoCalendario = calendarioEventosMesesFiltro.IdTipoCalendario,
                DreId = calendarioEventosMesesFiltro.DreId,
                UeId = calendarioEventosMesesFiltro.UeId,
                mes,
                dia
            }));
        }
Пример #8
0
        public async Task <IEnumerable <CalendarioEventosNoDiaRetornoDto> > ObterEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes, int dia)
        {
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            return(await repositorioEvento.ObterEventosPorDia(calendarioEventosMesesFiltro, mes, dia, usuario));
        }
Пример #9
0
        public async Task <IEnumerable <CalendarioEventosMesesDto> > ObterQuantidadeDeEventosPorMeses(CalendarioEventosFiltroDto calendarioEventosMesesFiltro)
        {
            var query = new StringBuilder();

            query.AppendLine("SELECT a.mes,");
            query.AppendLine("Count(*) eventos");
            query.AppendLine("FROM(SELECT a.*,");
            query.AppendLine("Rank()");
            query.AppendLine("over(");
            query.AppendLine("PARTITION BY a.id, a.mes");
            query.AppendLine("ORDER BY campo) rank_id");
            query.AppendLine("FROM(SELECT id,");
            query.AppendLine("Extract(month FROM data_inicio) mes,");
            query.AppendLine("1 campo");
            query.AppendLine("FROM   evento");
            query.AppendLine("where 1=1");

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and ue_id is null and dre_id is null");
            }

            query.AppendLine("UNION ALL");
            query.AppendLine("SELECT id,");
            query.AppendLine("Extract(month FROM data_fim) mes_evento,");
            query.AppendLine("2 campo");
            query.AppendLine("FROM   evento");
            query.AppendLine("where 1=1");

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and ue_id is null and dre_id is null");
            }

            query.AppendLine(") a) a");
            query.AppendLine("WHERE  a.rank_id = 1");
            query.AppendLine("GROUP BY a.mes");

            return(await database.Conexao.QueryAsync <CalendarioEventosMesesDto>(query.ToString(), new
            {
                IdTipoCalendario = calendarioEventosMesesFiltro.IdTipoCalendario,
                DreId = calendarioEventosMesesFiltro.DreId,
                UeId = calendarioEventosMesesFiltro.UeId
            }));
        }
Пример #10
0
        public async Task <IEnumerable <EventosPorDiaRetornoQueryDto> > ObterQuantidadeDeEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes)
        {
            var query = new StringBuilder();

            query.AppendLine("select a.dia, a.tipoevento from(select id, extract(day from e.data_inicio) as dia,");
            query.AppendLine("case");
            query.AppendLine("when e.dre_id is not null then 'DRE'");
            query.AppendLine("when e.ue_id is not null then 'UE'");
            query.AppendLine("when e.ue_id is null and e.dre_id is null then 'SME'");
            query.AppendLine("end as TipoEvento");
            query.AppendLine("from evento e");
            query.AppendLine("where excluido = false");

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and ue_id is null and dre_id is null");
            }

            if (mes > 0)
            {
                query.AppendLine("and extract(month from e.data_inicio) = @mes");
            }

            query.AppendLine("group by id, dia, tipoevento");
            query.AppendLine("union distinct");
            query.AppendLine("select id, extract(day from e.data_fim) as dia,   ");
            query.AppendLine("case");
            query.AppendLine("when e.dre_id is not null then 'DRE'");
            query.AppendLine("when e.ue_id is not null then 'UE'");
            query.AppendLine("when e.ue_id is null and e.dre_id is null then 'SME'");
            query.AppendLine("end as TipoEvento");
            query.AppendLine("from evento e");
            query.AppendLine("where excluido = false");
            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.DreId))
            {
                query.AppendLine("and dre_id = @DreId");
            }

            if (calendarioEventosMesesFiltro.IdTipoCalendario > 0)
            {
                query.AppendLine("and tipo_calendario_id = @IdTipoCalendario");
            }

            if (!string.IsNullOrEmpty(calendarioEventosMesesFiltro.UeId))
            {
                query.AppendLine("and ue_id = @UeId");
            }

            if (calendarioEventosMesesFiltro.EhEventoSme)
            {
                query.AppendLine("and ue_id is null and dre_id is null");
            }

            if (mes > 0)
            {
                query.AppendLine("and extract(month from e.data_fim) = @mes");
            }

            query.AppendLine("group by id, dia, tipoevento) a");
            query.AppendLine("order by a.dia");

            return(await database.Conexao.QueryAsync <EventosPorDiaRetornoQueryDto>(query.ToString(), new
            {
                IdTipoCalendario = calendarioEventosMesesFiltro.IdTipoCalendario,
                DreId = calendarioEventosMesesFiltro.DreId,
                UeId = calendarioEventosMesesFiltro.UeId,
                mes
            }));
        }
Пример #11
0
 public Task <IEnumerable <CalendarioEventosMesesDto> > ObterQuantidadeDeEventosPorMeses(CalendarioEventosFiltroDto calendarioEventosMesesFiltro)
 {
     return(repositorioEvento.ObterQuantidadeDeEventosPorMeses(calendarioEventosMesesFiltro));
 }
Пример #12
0
        public async Task <IEnumerable <CalendarioTipoEventoPorDiaDto> > ObterQuantidadeDeEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes)
        {
            var listaQuery = await repositorioEvento.ObterQuantidadeDeEventosPorDia(calendarioEventosMesesFiltro, mes);

            List <CalendarioTipoEventoPorDiaDto> listaRetorno = new List <CalendarioTipoEventoPorDiaDto>();

            if (listaQuery.Any())
            {
                var listaDiasEventos = listaQuery.GroupBy(a => a.Dia).ToList();

                listaDiasEventos.ForEach(a =>
                {
                    var tipoEventos = a.Take(3).Select(b => b.TipoEvento).ToList();
                    listaRetorno.Add(new CalendarioTipoEventoPorDiaDto()
                    {
                        Dia                 = a.Key,
                        TiposEvento         = tipoEventos.ToArray(),
                        QuantidadeDeEventos = a.Count()
                    });
                });
            }

            return(listaRetorno);
        }
Пример #13
0
 public Task <IEnumerable <CalendarioEventosNoDiaRetornoDto> > ObterEventosPorDia(CalendarioEventosFiltroDto calendarioEventosMesesFiltro, int mes, int dia)
 {
     return(repositorioEvento.ObterEventosPorDia(calendarioEventosMesesFiltro, mes, dia));
 }