private void GetMonthlyReportData(int year, IList <MonthlyReportData> onlineList, IList <MonthlyReportData> inHouseList)
        {
            var monthlyRunsCount     = _dataSheetService.GetMonthlyRunsCount(year);
            var monthlyConsultations = _dataSheetService.GetMonthlyConsultationReport(year);
            var monthlyNewUsers      = _dataSheetService.GetMonthlyNewUserReport(year);

            foreach (var month in MonthYearHelper.GetMonths())
            {
                //inhouse
                inHouseList.Add(new MonthlyReportData
                {
                    Month           = month.Item1,
                    MonthName       = month.Item2,
                    Inhouse         = Common.Constants.Constants.INHOUSE,
                    NoOfRuns        = GetMonthlyRunsCount(monthlyRunsCount, month.Item1, Common.Constants.Constants.INHOUSE),
                    ConsultationACT = GetMonthlyConsultationACTCount(monthlyConsultations, month.Item1, Common.Constants.Constants.INHOUSE),
                    NUACT           = GetMonthlyNewUserCount(monthlyNewUsers, month.Item1, Common.Constants.Constants.INHOUSE)
                });

                //online
                onlineList.Add(new MonthlyReportData
                {
                    Month           = month.Item1,
                    MonthName       = month.Item2,
                    Inhouse         = Common.Constants.Constants.INHOUSE,
                    NoOfRuns        = GetMonthlyRunsCount(monthlyRunsCount, month.Item1, Common.Constants.Constants.ONLINE),
                    ConsultationACT = GetMonthlyConsultationACTCount(monthlyConsultations, month.Item1, Common.Constants.Constants.ONLINE),
                    NUACT           = GetMonthlyNewUserCount(monthlyNewUsers, month.Item1, Common.Constants.Constants.ONLINE)
                });
            }
        }
        public ActionResult CreateTag(TagCreateViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                if (viewModel.StartDate > viewModel.EndDate)
                {
                    viewModel.Months = MonthYearHelper.GetMonthList();
                    viewModel.Years  = MonthYearHelper.GetYearList();
                    ModelState.AddModelError("", "End date must not be greater than Start Date");
                    return(View(viewModel));
                }

                //check for overlap
                var overlappedTags = _tagRepository.FirstOrDefault(x => !x.IsDeleted && x.Month == viewModel.Month && x.Year == viewModel.Year &&
                                                                   viewModel.StartDate <= x.EndDate && x.StartDate <= viewModel.EndDate);

                if (overlappedTags != null)
                {
                    viewModel.Months = MonthYearHelper.GetMonthList();
                    viewModel.Years  = MonthYearHelper.GetYearList();
                    ModelState.AddModelError("", "Date must not overlap");
                    return(View(viewModel));
                }

                var tag = viewModel.MapItem <Tag>();
                _tagRepository.Add(tag);
                _unitOfWork.Commit();

                return(RedirectToAction("Tags", new { month = viewModel.Month, year = viewModel.Year }));
            }

            viewModel.Months = MonthYearHelper.GetMonthList();
            viewModel.Years  = MonthYearHelper.GetYearList();
            return(View(viewModel));
        }
        public void MonthHelperTestNullValues(int?calendarYear, int?calendarMonth)
        {
            var monthYearHelper = new MonthYearHelper();

            var getDate = monthYearHelper.GetFirstOfCalendarMonthDateTime(calendarYear, calendarMonth);

            getDate.Should().Be(1.January(0001));
        }
        public void MonthHelperTestValidYearMonth(int?calendarYear, int?calendarMonth)
        {
            var monthYearHelper = new MonthYearHelper();

            var getDate = monthYearHelper.GetFirstOfCalendarMonthDateTime(calendarYear, calendarMonth);

            getDate.Should().Be(1.February(2020).At(23, 59, 59));
        }
예제 #5
0
        public ActionResult DataSheet(int month, int year, HttpPostedFileBase file)
        {
            var viewModel = new DataSheetViewModel
            {
                Year    = year,
                Month   = month,
                Years   = MonthYearHelper.GetYearList(),
                Months  = MonthYearHelper.GetMonthList(),
                HasTags = true
            };

            if (file != null && file.ContentLength > 0)
            {
                if (file.FileName.EndsWith(".csv"))
                {
                    using (var stream = file.InputStream)
                    {
                        using (var csvTable = new DataTable())
                        {
                            using (var reader = new CsvReader(new StreamReader(stream), true))
                            {
                                csvTable.Load(reader);

                                if (!csvTable.IsHeaderValid(Common.Constants.Constants.DATASHEET_HEADERS))
                                {
                                    ModelState.AddModelError("", String.Format("Uploaded file does not contain all the required headers: {0}", String.Join(",", Common.Constants.Constants.DATASHEET_HEADERS)));
                                    return(View(viewModel));
                                }

                                try
                                {
                                    _dataSheetService.UploadDataSheet(month, year, csvTable);
                                }
                                catch (Exception ex)
                                {
                                    ModelState.AddModelError("", ex.Message);
                                }
                            }
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Invalid file format. Please select only .csv file");
                }
            }

            //TempData["Message"] = "Datasheet has been successfully uploaded";
            return(View(viewModel));
        }
        public ActionResult CreateTag(int?year = null, int?month = null)
        {
            var now          = DateTime.Now;
            var currentMonth = month ?? now.Month;
            var currentYear  = year ?? now.Year;

            var viewModel = new TagCreateViewModel
            {
                Month  = currentMonth,
                Year   = currentYear,
                Months = MonthYearHelper.GetMonthList(),
                Years  = MonthYearHelper.GetYearList(),
            };

            return(View(viewModel));
        }
        public ActionResult EditTag(int id)
        {
            var tag = _tagRepository.GetById(id);

            if (tag == null)
            {
                return(RedirectToAction("Tags"));
            }

            var viewModel = tag.MapItem <TagCreateViewModel>();

            viewModel.Months       = MonthYearHelper.GetMonthList();
            viewModel.Years        = MonthYearHelper.GetYearList();
            viewModel.HasDataSheet = _dataSheetService.HasDataSheet(tag.Year, tag.Month);
            viewModel.Year         = tag.Year;
            viewModel.Month        = tag.Month;
            return(View(viewModel));
        }
예제 #8
0
        public ActionResult DataSheet(int?month = null, int?year = null)
        {
            var now     = DateTime.Now;
            var y       = year ?? now.Year;
            var m       = month ?? now.Month;
            var hasTags = _tagService.HasTags(y, m);

            var viewModel = new DataSheetViewModel
            {
                Year    = y,
                Month   = m,
                HasTags = hasTags,
                Years   = MonthYearHelper.GetYearList(),
                Months  = MonthYearHelper.GetMonthList()
            };

            return(View(viewModel));
        }
예제 #9
0
        public ActionResult NewUserMTDDataSheet(int?month = null, int?year = null)
        {
            var now = DateTime.Now;
            var m   = month ?? now.Month;
            var y   = year ?? now.Year;

            var datasheet = _dataSheetService.GetMonthlyNewUserReport(y, m).ToList();
            var viewModel = new NewUserDataSheetViewModel
            {
                Year       = y,
                Month      = m,
                DataSheets = datasheet,
                Years      = MonthYearHelper.GetYearList(),
                Months     = MonthYearHelper.GetMonthList()
            };

            return(View(viewModel));
        }
        public ActionResult WeeklyTagsRun(int?year = null, int?month = null)
        {
            var viewModel = new WeeklyTagRunViewModel
            {
                Month  = month ?? DateTime.Now.Month,
                Year   = year ?? DateTime.Now.Year,
                Months = MonthYearHelper.GetMonthList(),
                Years  = MonthYearHelper.GetYearList()
            };

            var data           = _dataSheetService.GetWeeklyReport(viewModel.Month, viewModel.Year);
            var inhouseSummary = _dataSheetService.GetWeeklyInHouseSummary(viewModel.Month, viewModel.Year);

            viewModel.WeeklyReport         = data;
            viewModel.WeeklyInhouseSummary = inhouseSummary;
            viewModel.Tags = _tagService.GetTags(viewModel.Year, viewModel.Month).OrderBy(x => x.StartDate);

            return(View(viewModel));
        }
        public ActionResult Tags(int?month = null, int?year = null)
        {
            var now          = DateTime.Now;
            var currentMonth = month ?? now.Month;
            var currentYear  = year ?? now.Year;

            var tags = _tagService.GetTags(currentYear, currentMonth);

            var viewModel = new TagListViewModel
            {
                Year   = currentYear,
                Month  = currentMonth,
                Months = MonthYearHelper.GetMonthList(),
                Years  = MonthYearHelper.GetYearList(),
                Tags   = tags
            };

            return(View(viewModel));
        }
예제 #12
0
        public ActionResult NewUserMTDDataSheet(int month, int year, HttpPostedFileBase file)
        {
            var viewModel = new NewUserDataSheetViewModel
            {
                Year   = year,
                Month  = month,
                Years  = MonthYearHelper.GetYearList(),
                Months = MonthYearHelper.GetMonthList()
            };

            if (file != null && file.ContentLength > 0)
            {
                if (file.FileName.EndsWith(".csv"))
                {
                    using (var stream = file.InputStream)
                    {
                        using (var csvTable = new DataTable())
                        {
                            using (var reader = new CsvReader(new StreamReader(stream), true))
                            {
                                csvTable.Load(reader);
                                var headers = new List <string> {
                                    "TM CODE", "BRAND", "Date", "FIRST USE"
                                };
                                if (!csvTable.IsHeaderValid(headers))
                                {
                                    ModelState.AddModelError("", String.Format("Uploaded file does not contain all the required headers: {0}", String.Join(",", headers)));
                                    return(View(viewModel));
                                }
                                _dataSheetService.UploadNewUserMTDDataSheet(year, csvTable);
                            }
                        }
                    }
                }
            }

            //TempData["Message"] = "New User MTD Datasheet has been successfully uploaded";
            return(RedirectToAction("NewUserMTDDataSheet", new { month, year }));
        }
        public ActionResult MonthlyTagsRun(int?year = null, string months = null)
        {
            var monthList         = MonthYearHelper.GetMonthList();
            var selectedMonth     = !String.IsNullOrEmpty(months) ? months.Split(',') : new string [0];
            var selectedMonthList = !String.IsNullOrEmpty(months) ? selectedMonth : monthList.Select(x => x.Value);

            var viewModel = new MonthlyTagRunViewModel
            {
                Year           = year ?? DateTime.Now.Year,
                SelectedMonths = selectedMonthList,
                Months         = monthList,
                Years          = MonthYearHelper.GetYearList()
            };

            var onlineList  = new List <MonthlyReportData>();
            var inHouseList = new List <MonthlyReportData>();

            GetMonthlyReportData(viewModel.Year, onlineList, inHouseList);

            viewModel.InhouseMonthlyReport = inHouseList;
            viewModel.OnlineMonthlyReport  = onlineList;
            return(View(viewModel));
        }
 public bool Execute(SupplementaryDataModel model)
 {
     return(MonthYearHelper.GetCalendarDateTime(model.CalendarYear, model.CalendarMonth) < DateTime.Today);
 }
예제 #15
0
 public bool Execute(SupplementaryDataModel model)
 {
     return
         ((model.ULN ?? 0) != 9999999999 ||
          MonthYearHelper.GetCalendarDateTime(model.CalendarYear, model.CalendarMonth) > DateTime.Now.AddMonths(-2));
 }