public List<AppReportPeriod> FetchData() { AppDbContext context = new AppDbContext(); List<AppReportPeriod> ReportPeriodList = new List<AppReportPeriod>(); DateTime StartDate = DateTime.Now; DateTime EndDate = DateTime.Now; switch (Mode) { case WEEK_MODE: StartDate = Calendar.GetFirstDayOfWeek(StartNumber, StartYear); EndDate = Calendar.GetLastDayOfWeek(EndNumber, EndYear); if (StartYear < EndYear) { for (int i = StartNumber; i <= Calendar.GetWeeksInYear(StartYear); i++) { ReportPeriodList.Add(new AppReportPeriod(WEEK_MODE, i, StartYear)); } for (int i = 1; i <= EndNumber; i++) { ReportPeriodList.Add(new AppReportPeriod(WEEK_MODE, i, EndYear)); } } else { for (int i = StartNumber; i < EndNumber; i++) { ReportPeriodList.Add(new AppReportPeriod(WEEK_MODE, i, EndYear)); } } break; } var list = context.Events.Where( x => x.Date >= StartDate && x.Date <= EndDate && Persons.Contains(x.UserId) ).ToList(); foreach (var item in list) { int type = item.Type; AppReportPeriod ReportPeriod = ReportPeriodList.Find(x => item.Date >= x.FirstDay && item.Date <= x.LastDay); switch (type) { case Events.SegmentationRejected: ReportPeriod.SegmentationDuration += item.Duration; break; case Events.SegmentationApproved: ReportPeriod.SegmentationDuration += item.Duration; ReportPeriod.SegmentationCount++; break; case Events.PlanningRejected: case Events.PlanningRejectedRevision: ReportPeriod.PlanningDuration += item.Duration; break; case Events.PlanningApproved: ReportPeriod.PlanningDuration += item.Duration; ReportPeriod.PlanningCount++; break; case Events.GuideDesignRejected: ReportPeriod.GuideDesignDuration += item.Duration; break; case Events.GuideDesignApproved: ReportPeriod.GuideDesignDuration += item.Duration; ReportPeriod.GuideDesignCount++; break; } } foreach (var item in ReportPeriodList) { item.CalculateSegmentationAverage(); item.CalculatePlanningAverage(); item.CalculateGuideDesignAverage(); } return ReportPeriodList; }
public List<AppReportPeriod> getQECaseTimeReport() { AppDbContext context = new AppDbContext(); string ReportMode = getMode(); switch (ReportMode) { case WEEK_MODE: break; } List<AppReportPeriod> ReportPeriodList = new List<AppReportPeriod>(); return ReportPeriodList; }