コード例 #1
0
        public async Task <IActionResult> Details(DetailsViewModel viewModel)
        {
            switch (viewModel.Selection)
            {
            case CohortDetailsOptions.Send:
            {
                var request = await _modelMapper.Map <SendCohortRequest>(viewModel);

                await _commitmentsApiClient.SendCohort(viewModel.CohortId, request);

                return(RedirectToAction("Sent", new { viewModel.CohortReference, viewModel.AccountHashedId }));
            }

            case CohortDetailsOptions.Approve:
            {
                var request = await _modelMapper.Map <ApproveCohortRequest>(viewModel);

                await _commitmentsApiClient.ApproveCohort(viewModel.CohortId, request);

                return(RedirectToAction("Approved", new { viewModel.CohortReference, viewModel.AccountHashedId }));
            }

            case CohortDetailsOptions.ViewEmployerAgreement:
            {
                var request = await _modelMapper.Map <ViewEmployerAgreementRequest>(viewModel);

                if (request.AgreementHashedId == null)
                {
                    return(Redirect(_linkGenerator.AccountsLink($"accounts/{request.AccountHashedId}/agreements/")));
                }
                return(Redirect(_linkGenerator.AccountsLink(
                                    $"accounts/{request.AccountHashedId}/agreements/{request.AgreementHashedId}/about-your-agreement")));
            }

            case CohortDetailsOptions.Homepage:
            {
                return(Redirect(_linkGenerator.AccountsLink($"accounts/{viewModel.AccountHashedId}/teams")));
            }

            default:
                throw new ArgumentOutOfRangeException(nameof(viewModel.Selection));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Details([FromServices] IPolicyAuthorizationWrapper authorizationService, DetailsViewModel viewModel)
        {
            switch (viewModel.Selection)
            {
            case CohortDetailsOptions.Send:
            {
                await ValidateAuthorization(authorizationService);

                var request = await _modelMapper.Map <SendCohortRequest>(viewModel);

                await _commitmentApiClient.SendCohort(viewModel.CohortId, request);

                return(RedirectToAction(nameof(Acknowledgement), new { viewModel.CohortReference, viewModel.ProviderId, SaveStatus = SaveStatus.AmendAndSend }));
            }

            case CohortDetailsOptions.Approve:
            {
                await ValidateAuthorization(authorizationService);

                var request = await _modelMapper.Map <ApproveCohortRequest>(viewModel);

                await _commitmentApiClient.ApproveCohort(viewModel.CohortId, request);

                var saveStatus = viewModel.IsApprovedByEmployer && string.IsNullOrEmpty(viewModel.TransferSenderHashedId) ? SaveStatus.Approve : SaveStatus.ApproveAndSend;
                return(RedirectToAction(nameof(Acknowledgement), new { viewModel.CohortReference, viewModel.ProviderId, SaveStatus = saveStatus }));
            }

            case CohortDetailsOptions.ApprenticeRequest:
            {
                return(RedirectToAction("Review", new { viewModel.ProviderId }));
            }

            default:
                throw new ArgumentOutOfRangeException(nameof(viewModel.Selection));
            }
        }