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