Example #1
0
        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;
        }
Example #2
0
        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;
        }