Ejemplo n.º 1
0
        private IEnumerable <UsersByDateSeriesResponse> GetUserStatsFromYear()
        {
            var created  = _uow.UserRepository.GetAll().Where(u => u.Status == StatusEnum.PENDING && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);
            var active   = _uow.UserRepository.GetAll().Where(u => u.Status == StatusEnum.ACTIVE && u.ActivatedAt.HasValue && u.ActivatedAt.Value.Date.Year == DateTime.UtcNow.Date.Year);
            var disabled = _uow.UserRepository.GetAll().Where(u => u.Status == StatusEnum.INACTIVE && u.DisabledAt.HasValue && u.DisabledAt.Value.Date.Year == DateTime.UtcNow.Date.Year);

            var creGrouped = created.AsEnumerable().GroupBy(c => c.CreatedAt.Month);
            var actGrouped = active.AsEnumerable().GroupBy(c => c.ActivatedAt?.Month);
            var disGrouped = disabled.AsEnumerable().GroupBy(c => c.DisabledAt?.Month);

            var seriesToReturn = new List <UsersByDateSeriesResponse>();

            for (int i = 1; i <= 12; i++)
            {
                var    serieResponse = new UsersByDateSeriesResponse();
                string monthName     = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(i);
                serieResponse.Name = monthName;
                var series = new List <BasicSerieResponse>();

                var act = actGrouped.Where(ag => ag.Key.HasValue && ag.Key.Value == i).FirstOrDefault();
                if (act != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Activo";
                    simpleSerie.Value = act.Count();
                    if (act.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }

                var pend = creGrouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (pend != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Por Activar";
                    simpleSerie.Value = pend.Count();
                    if (pend.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }

                var dis = disGrouped.Where(ag => ag.Key.HasValue && ag.Key.Value == i).FirstOrDefault();
                if (dis != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Deshabilitado";
                    simpleSerie.Value = dis.Count();
                    if (dis.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }
                if (series.Count > 0)
                {
                    serieResponse.Series = series;
                    seriesToReturn.Add(serieResponse);
                }
            }

            return(seriesToReturn);
        }
Ejemplo n.º 2
0
        private IEnumerable <EatsByDateSeriesResponse> GetEatsStatsFromYear()
        {
            var breakfast = _uow.EatRepository.GetAll().Where(u => u.EatType == EatTypeEnum.BREAKFAST && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);
            var snack1    = _uow.EatRepository.GetAll().Where(u => u.EatType == EatTypeEnum.SNACK1 && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);
            var lunch     = _uow.EatRepository.GetAll().Where(u => u.EatType == EatTypeEnum.LUNCH && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);
            var snack2    = _uow.EatRepository.GetAll().Where(u => u.EatType == EatTypeEnum.SNACK2 && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);
            var dinner    = _uow.EatRepository.GetAll().Where(u => u.EatType == EatTypeEnum.DINNER && u.CreatedAt.Date.Year == DateTime.UtcNow.Date.Year);

            var breakGrouped  = breakfast.AsEnumerable().GroupBy(c => c.CreatedAt.Month);
            var snackGrouped  = snack1.AsEnumerable().GroupBy(c => c.CreatedAt.Month);
            var lunchGrouped  = lunch.AsEnumerable().GroupBy(c => c.CreatedAt.Month);
            var snack2Grouped = snack2.AsEnumerable().GroupBy(c => c.CreatedAt.Month);
            var dinnerGrouped = dinner.AsEnumerable().GroupBy(c => c.CreatedAt.Month);

            var seriesToReturn = new List <EatsByDateSeriesResponse>();

            for (int i = 1; i <= 12; i++)
            {
                var    serieResponse = new EatsByDateSeriesResponse();
                string monthName     = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(i);
                serieResponse.Name = monthName;
                var series = new List <BasicSerieResponse>();

                var bre = breakGrouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (bre != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Desayuno";
                    simpleSerie.Value = bre.Count();
                    if (bre.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }
                var sn1 = snackGrouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (sn1 != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Merienda 1";
                    simpleSerie.Value = sn1.Count();
                    if (sn1.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }
                var lun = lunchGrouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (lun != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Almuerzo";
                    simpleSerie.Value = lun.Count();
                    if (lun.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }

                var sn2 = snack2Grouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (sn2 != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Merienda 2";
                    simpleSerie.Value = sn2.Count();
                    if (sn2.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }
                var din = dinnerGrouped.Where(ag => ag.Key == i).FirstOrDefault();
                if (din != null)
                {
                    var simpleSerie = new BasicSerieResponse();
                    simpleSerie.Name  = "Cena";
                    simpleSerie.Value = din.Count();
                    if (din.Count() > 0)
                    {
                        series.Add(simpleSerie);
                    }
                }

                if (series.Count > 0)
                {
                    serieResponse.Series = series;
                    seriesToReturn.Add(serieResponse);
                }
            }

            return(seriesToReturn);
        }