[InlineData("1", "4", "2018", "20", "4", "2019")] //BST
        public async Task PostCreateViewModelAsync_ShouldUseCustomTimespan(string fromDay, string fromMonth, string fromYear, string toDay, string toMonth, string toYear)
        {
            var model = new ApplicationsReportCreateEditModel
            {
                DateRange = DateRangeType.Custom,
                FromDay   = fromDay,
                FromMonth = fromMonth,
                FromYear  = fromYear,
                ToDay     = toDay,
                ToMonth   = toMonth,
                ToYear    = toYear,
            };

            var user = new VacancyUser();

            var mockClient   = new Mock <IQaVacancyClient>();
            var orchestrator = GetOrchestrator(mockClient.Object, "2019-12-05Z");

            var fromDateUtc = DateTimeOffset.Parse($"{fromYear}-{fromMonth}-{fromDay}Z").UtcDateTime;
            var toDateUtc   = DateTimeOffset.Parse($"{toYear}-{toMonth}-{toDay}Z").UtcDateTime;

            await orchestrator.PostCreateViewModelAsync(model, user);

            string expectedReportName = $"{fromDateUtc.AsGdsDate()} to {toDateUtc.AsGdsDate()}";

            mockClient.Verify(c => c.CreateApplicationsReportAsync(
                                  fromDateUtc,
                                  toDateUtc.AddDays(1).AddTicks(-1),
                                  user,
                                  expectedReportName),
                              Times.Once);
        }
        [InlineData(DateRangeType.Last30Days, "2019-04-01Z", "2019-05-01Z")] //BST
        public async Task PostCreateViewModelAsync_ShouldUseCorrectTimespan(DateRangeType dateRangeType, string fromDate, string toDate)
        {
            var mockClient   = new Mock <IQaVacancyClient>();
            var orchestrator = GetOrchestrator(mockClient.Object, $"{toDate}");

            var fromDateUtc = DateTimeOffset.Parse(fromDate).UtcDateTime;
            var toDateUtc   = DateTimeOffset.Parse(toDate).UtcDateTime;

            var model = new ApplicationsReportCreateEditModel
            {
                DateRange = dateRangeType
            };

            var user = new VacancyUser();

            await orchestrator.PostCreateViewModelAsync(model, user);

            string expectedReportName = $"{fromDateUtc.AsGdsDate()} to {toDateUtc.AsGdsDate()}";

            mockClient.Verify(c => c.CreateApplicationsReportAsync(
                                  fromDateUtc,
                                  toDateUtc.AddDays(1).AddTicks(-1),
                                  user,
                                  expectedReportName),
                              Times.Once);
        }
Exemple #3
0
        public Task <Guid> PostCreateViewModelAsync(ApplicationsReportCreateEditModel model, VacancyUser user)
        {
            DateTime fromDate;
            DateTime toDate = _timeProvider.Today;

            switch (model.DateRange)
            {
            case DateRangeType.Last7Days:
                fromDate = _timeProvider.Today.AddDays(-7);
                break;

            case DateRangeType.Last14Days:
                fromDate = _timeProvider.Today.AddDays(-14);
                break;

            case DateRangeType.Last30Days:
                fromDate = _timeProvider.Today.AddDays(-30);
                break;

            case DateRangeType.Custom:
                fromDate = model.FromDate.AsDateTimeUk().Value.ToUniversalTime();
                toDate   = model.ToDate.AsDateTimeUk().Value.ToUniversalTime();
                break;

            default:
                throw new NotImplementedException($"Cannot handle this date range type:{model.DateRange.ToString()}");
            }

            var reportName = $"{fromDate.ToUkTime().AsGdsDate()} to {toDate.ToUkTime().AsGdsDate()}";

            DateTime toDateInclusive = toDate.AddDays(1).AddTicks(-1);

            return(_client.CreateApplicationsReportAsync(fromDate, toDateInclusive, user, reportName));
        }
        public async Task<IActionResult> Create(ApplicationsReportCreateEditModel m)
        {
            if (ModelState.IsValid == false)
            {
                var vm = _orchestrator.GetCreateViewModel(m);

                return View(vm);
            }

            var reportId = await _orchestrator.PostCreateViewModelAsync(m, User.GetVacancyUser());

            return RedirectToRoute(RouteNames.ReportConfirmation_Get, new ReportRouteModel { ReportId = reportId });
        }
Exemple #5
0
        public ApplicationsReportCreateViewModel GetCreateViewModel(ApplicationsReportCreateEditModel model)
        {
            var vm = GetCreateViewModel();

            vm.DateRange = model.DateRange;
            vm.FromDay   = model.FromDay;
            vm.FromMonth = model.FromMonth;
            vm.FromYear  = model.FromYear;
            vm.ToDay     = model.ToDay;
            vm.ToMonth   = model.ToMonth;
            vm.ToYear    = model.ToYear;

            return(vm);
        }