public async Task <IActionResult> Index()
        {
            int?UKPRN = Session.GetInt32("UKPRN");

            if (!UKPRN.HasValue)
            {
                return(RedirectToAction("Index", "Home", new { errmsg = "Please select a Provider." }));
            }

            PublishApprenticeshipsViewModel vm = new PublishApprenticeshipsViewModel();

            var apprenticeships = await _cosmosDbQueryDispatcher.ExecuteQuery(new GetApprenticeships
            {
                Predicate = a =>
                            a.ProviderUKPRN == UKPRN &&
                            (a.RecordStatus == (int)ApprenticeshipStatus.BulkUploadPending || a.RecordStatus == (int)ApprenticeshipStatus.BulkUploadReadyToGoLive)
            });

            var bulkUploadPendingApprenticeships       = apprenticeships.Values.Where(a => a.RecordStatus == (int)ApprenticeshipStatus.BulkUploadPending).Select(Apprenticeship.FromCosmosDbModel).ToArray();
            var bulkUploadReadyToGoLiveApprenticeships = apprenticeships.Values.Where(a => a.RecordStatus == (int)ApprenticeshipStatus.BulkUploadReadyToGoLive).Select(Apprenticeship.FromCosmosDbModel).ToArray();

            vm.ListOfApprenticeships = await GetErrorMessages(bulkUploadPendingApprenticeships);

            if (!bulkUploadPendingApprenticeships.Any())
            {
                return(RedirectToAction("PublishYourFile", "BulkUploadApprenticeships", new
                {
                    NumberOfApprenticeships = bulkUploadReadyToGoLiveApprenticeships.Sum(a => a.ApprenticeshipLocations.Count(al => al.RecordStatus == ApprenticeshipStatus.BulkUploadReadyToGoLive))
                }));
            }

            vm.AreAllReadyToBePublished = true;

            return(View("Index", vm));
        }
        public IActionResult Index()
        {
            PublishApprenticeshipsViewModel vm = new PublishApprenticeshipsViewModel();
            int?UKPRN = Session.GetInt32("UKPRN");

            if (!UKPRN.HasValue)
            {
                return(RedirectToAction("Index", "Home", new { errmsg = "Please select a Provider." }));
            }
            var apprenticeships = _apprenticeshipService.GetApprenticeshipByUKPRN(UKPRN.Value.ToString()).Result.Value.Where(x => x.RecordStatus == RecordStatus.BulkUploadPending);

            var getApprenticeships = _apprenticeshipService.GetApprenticeshipByUKPRN(UKPRN.Value.ToString()).Result.Value.Where(x => x.ProviderUKPRN == UKPRN);

            vm.ListOfApprenticeships = apprenticeships;
            vm.ListOfApprenticeships = GetErrorMessages(vm.ListOfApprenticeships);

            if (!getApprenticeships.Any(x => x.RecordStatus == RecordStatus.BulkUploadPending))
            {
                vm.AreAllReadyToBePublished = true;
            }

            if (vm.AreAllReadyToBePublished)
            {
                return(RedirectToAction("PublishYourFile", "BulkUploadApprenticeships", new { NumberOfApprenticeships = apprenticeships.SelectMany(s => s.ApprenticeshipLocations.Where(cr => cr.RecordStatus == RecordStatus.BulkUploadReadyToGoLive)).Count() }));
            }
            return(View("Index", vm));
        }
        public async Task <IActionResult> Index(PublishApprenticeshipsViewModel vm)
        {
            PublishCompleteViewModel CompleteVM = new PublishCompleteViewModel();

            int?sUKPRN = Session.GetInt32("UKPRN");
            int UKPRN;

            if (!sUKPRN.HasValue)
            {
                return(RedirectToAction("Index", "Home", new { errmsg = "Please select a Provider." }));
            }
            else
            {
                UKPRN = sUKPRN ?? 0;
            }

            CompleteVM.NumberOfCoursesPublished = vm.NumberOfApprenticeships;

            await _cosmosDbQueryDispatcher.ExecuteQuery(new UpdateApprenticeshipStatusesByProviderUkprn
            {
                ProviderUkprn = UKPRN,
                CurrentStatus = ApprenticeshipStatus.MigrationPending | ApprenticeshipStatus.MigrationReadyToGoLive,
                NewStatus     = ApprenticeshipStatus.Archived
            });

            //Archive any existing courses
            await _cosmosDbQueryDispatcher.ExecuteQuery(new UpdateApprenticeshipStatusesByProviderUkprn
            {
                ProviderUkprn = UKPRN,
                CurrentStatus = ApprenticeshipStatus.Live,
                NewStatus     = ApprenticeshipStatus.Archived
            });

            // Publish courses
            await _cosmosDbQueryDispatcher.ExecuteQuery(new UpdateApprenticeshipStatusesByProviderUkprn
            {
                ProviderUkprn = UKPRN,
                CurrentStatus = ApprenticeshipStatus.BulkUploadReadyToGoLive,
                NewStatus     = ApprenticeshipStatus.Live
            });

            CompleteVM.Mode = PublishMode.BulkUpload;

            return(RedirectToAction("Complete", "Apprenticeships", new { CompleteVM }));
        }
        public async Task <IActionResult> Index(PublishApprenticeshipsViewModel vm)
        {
            PublishCompleteViewModel CompleteVM = new PublishCompleteViewModel();

            int?sUKPRN = Session.GetInt32("UKPRN");
            int UKPRN;

            if (!sUKPRN.HasValue)
            {
                return(RedirectToAction("Index", "Home", new { errmsg = "Please select a Provider." }));
            }
            else
            {
                UKPRN = sUKPRN ?? 0;
            }

            CompleteVM.NumberOfCoursesPublished = vm.NumberOfApprenticeships;
            await _apprenticeshipService.ChangeApprenticeshipStatusesForUKPRNSelection(UKPRN, (int)RecordStatus.MigrationPending, (int)RecordStatus.Archived);

            await _apprenticeshipService.ChangeApprenticeshipStatusesForUKPRNSelection(UKPRN, (int)RecordStatus.MigrationReadyToGoLive, (int)RecordStatus.Archived);

            //Archive any existing courses
            var resultArchivingCourses = await _apprenticeshipService.ChangeApprenticeshipStatusesForUKPRNSelection(UKPRN, (int)RecordStatus.Live, (int)RecordStatus.Archived);

            if (resultArchivingCourses.IsSuccess)
            {
                // Publish courses
                var resultPublishBulkUploadedCourses = await _apprenticeshipService.ChangeApprenticeshipStatusesForUKPRNSelection(UKPRN, (int)RecordStatus.BulkUploadReadyToGoLive, (int)RecordStatus.Live);

                CompleteVM.Mode = PublishMode.BulkUpload;
                if (resultPublishBulkUploadedCourses.IsSuccess)
                {
                    return(RedirectToAction("Complete", "Apprenticeships", new { CompleteVM }));
                }
                else
                {
                    return(RedirectToAction("Index", "Home", new { errmsg = "Publish All BulkUpload-PublishCourses Error" }));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home", new { errmsg = "Publish All BulkUpload-ArchiveCourses Error" }));
            }
        }
Пример #5
0
 public IViewComponentResult Invoke(PublishApprenticeshipsViewModel model)
 {
     return(View("~/ViewComponents/ApprenticeshipBulkUpload/FixError/Default.cshtml", model));
 }