private void GetTable2Data(SubjectRecords subjectRecords) { var dateRange = subjectRecords.SubjectData.OrderBy(p => p.Date).FirstOrDefault().Date.ToShortDateString() + " to " + subjectRecords.SubjectData.OrderByDescending(p => p.Date) .FirstOrDefault() .Date.ToShortDateString(); var validDays = subjectRecords.SubjectValidData.Count(); var invalidDays = subjectRecords.SubjectData.Count() - validDays; var avgAllDaysWearTime = subjectRecords.SubjectData.Select(p => p.Time).Average(); var avgValidaysWearTime = subjectRecords.SubjectValidAverages.AvgTime; var avgMovements = subjectRecords.SubjectValidData.Select(p => p.VectorMagnitudeCpm).Average(); var avgSteps = subjectRecords.SubjectValidData.Select(p => p.StepsCount).Average(); var data = new { Date_Range = dateRange, Valid_Days = validDays, Invalid_Days = invalidDays, Average_Wear_Time_All_Days = Math.Round(avgAllDaysWearTime), Average_Wear_Time_Valid_Days = Math.Round(avgValidaysWearTime), Average_Movements_Valid_Days = Math.Round(avgMovements), Average_Steps_Valid_Days = Math.Round(avgSteps) }; foreach (var item in (data.GetType().GetProperties())) { tableData2.Add(new TableData() { Name = item.Name.Replace('_', ' '), Value = Convert.ToString(item.GetValue(data)) }); } }
public void CreateReports(SubjectRecords subjectRecords) { try { subjectValidAverages = subjectRecords.SubjectValidAverages; GetTable1Data(subjectRecords.SubjectData); GetTable2Data(subjectRecords); tableData3 = GetTable3Data(subjectRecords); Create(); } catch (Exception exp) { throw exp; } }
private SummaryTableData[] GetTable3Data(SubjectRecords subjectRecords) { return((from rec in subjectRecords.SubjectData select new SummaryTableData() { Date = rec.Date.ToShortDateString(), Day_of_Week = rec.DayofWeek, Wear_Time = Math.Round(rec.Time), Movements_Per_Minute = Math.Round(rec.VectorMagnitudeCpm), Steps = rec.StepsCount, Sedentary = Math.Round(rec.Sedentary), Light = Math.Round(rec.Light), LifeStyle = Math.Round(rec.Lifestyle), Moderate = Math.Round(rec.Moderate) }).OrderBy(p => p.Date).ToArray()); }