示例#1
0
        public async Task <IHttpActionResult> GetMonthlySummary([FromODataUri] int userId, [FromODataUri] int year)
        {
            if (userId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(userId));
            }

            if (year <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(year));
            }

            var monthlyExpenseSummary = await _expenseService.GetMonthlyAmountSummaryAsync(userId, year).ConfigureAwait(false);

            var chartSummary = new ChartSummary()
            {
                Charts    = monthlyExpenseSummary,
                ChartType = ChartType.MonthlySummary
            };

            return(Ok(chartSummary));
        }
示例#2
0
        public JsonResult SummaryInformationFilter(int userid, string startrange, string endrange)
        {
            DateTime start = DateTime.Parse(startrange);
            DateTime end   = DateTime.Parse(endrange);

            var activitydata = (from act in _dt.Activities
                                join em in _dt.ExerciseMachines on act.ExerciseMachineID equals em.ID
                                join tb in _dt.TargetBodyParts on em.TargetBodyPartID equals tb.ID
                                join bh in _dt.BodyHalfs on tb.BodyHalfID equals bh.ID
                                where act.UserID == userid && act.Date >= start && act.Date <= end
                                select new { act, em, tb, bh }).ToList();

            var upperbodydata = (from tb in _dt.TargetBodyParts
                                 join bh in _dt.BodyHalfs on tb.BodyHalfID equals bh.ID
                                 where bh.ID == 1
                                 select new { tb }).ToList();

            var lowerbodydata = (from tb in _dt.TargetBodyParts
                                 join bh in _dt.BodyHalfs on tb.BodyHalfID equals bh.ID
                                 where bh.ID == 2
                                 select new { tb }).ToList();

            var SummaryData = new Summary()
            {
                UpperBody = new List <string>(),
                LowerBody = new List <string>(),
                SActivity = new List <SummaryActivity>()
            };

            foreach (var a in upperbodydata)
            {
                SummaryData.UpperBody.Add(a.tb.Value);
            }

            foreach (var a in lowerbodydata)
            {
                SummaryData.LowerBody.Add(a.tb.Value);
            }

            foreach (var a in activitydata)
            {
                SummaryActivity data = new SummaryActivity()
                {
                    ExerciseMachineValue = a.em.Type,
                    Reps           = a.act.Reps,
                    Weights        = a.act.Weights,
                    Sets           = a.act.Sets,
                    Other          = a.act.Other,
                    BodyHalf       = a.bh.Value,
                    BodyPartTarget = a.tb.Value
                };
                SummaryData.SActivity.Add(data);
            }

            //piechart
            var bodyhalfs    = activitydata.Select(x => x.bh.Value).Distinct();
            var piechartlist = new List <BodyHalfPieChart>();

            foreach (var a in bodyhalfs)
            {
                BodyHalfPieChart piechartobj = new BodyHalfPieChart
                {
                    label = a,
                    value = activitydata.Where(x => x.bh.Value == a).Count()
                };
                piechartlist.Add(piechartobj);
            }

            //Check Error if only one body half has been used
            if (piechartlist.Count() == 1 && piechartlist[0].label == "Lower")
            {
                BodyHalfPieChart piecharobj = new BodyHalfPieChart
                {
                    label = "Upper",
                    value = 0
                };
                piechartlist.Add(piecharobj);
            }
            else if (piechartlist.Count() == 1 && piechartlist[0].label == "Upper")
            {
                BodyHalfPieChart piecharobj = new BodyHalfPieChart
                {
                    label = "Lower",
                    value = 0
                };
                piechartlist.Add(piecharobj);
            }

            //summary
            var summarycharts = new ChartSummary()
            {
                upperbodylabel = new List <TargetBodyPartRadarChart>(),
                upperbodycount = new List <TargetBodyPartCount>(),
                lowerbodylabel = new List <TargetBodyPartRadarChart>(),
                lowerbodycount = new List <TargetBodyPartCount>()
            };

            summarycharts.piechart = piechartlist;


            //upperbody
            foreach (var a in upperbodydata)
            {
                int count = 0;
                foreach (var b in activitydata)
                {
                    if (b.tb.Value == a.tb.Value)
                    {
                        count++;
                    }
                }
                TargetBodyPartCount frequency = new TargetBodyPartCount
                {
                    value = count
                };

                summarycharts.upperbodycount.Add(frequency);

                TargetBodyPartRadarChart upperbodylist = new TargetBodyPartRadarChart
                {
                    label = a.tb.Value
                };
                summarycharts.upperbodylabel.Add(upperbodylist);
            }


            //lowerbody
            foreach (var a in lowerbodydata)
            {
                int count = 0;
                foreach (var b in activitydata)
                {
                    if (b.tb.Value == a.tb.Value)
                    {
                        count++;
                    }
                }
                TargetBodyPartCount frequency = new TargetBodyPartCount
                {
                    value = count
                };

                summarycharts.lowerbodycount.Add(frequency);

                TargetBodyPartRadarChart lowerbodylist = new TargetBodyPartRadarChart
                {
                    label = a.tb.Value
                };
                summarycharts.lowerbodylabel.Add(lowerbodylist);
            }

            return(Json(summarycharts, JsonRequestBehavior.AllowGet));
        }