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);
        }
Example #2
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);
        }