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 <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); }