private async Task <SelectApprenticeshipsViewModel> GetSelectViewModel(string accountId, string accountLegalEntityId) { var apprenticeshipIncentives = await _apprenticeshipIncentiveService.GetList(accountId, accountLegalEntityId); var legalEntity = await _legalEntitiesService.Get(accountId, accountLegalEntityId); var model = new SelectApprenticeshipsViewModel { AccountId = accountId, AccountLegalEntityId = accountLegalEntityId, ApprenticeshipIncentives = apprenticeshipIncentives .OrderBy(a => a.FirstName) .ThenBy(a => a.LastName) .ThenBy(a => a.Uln), OrganisationName = legalEntity?.Name ?? string.Empty }; if (TempData["selected"] is string[] selected) { foreach (var incentive in model.ApprenticeshipIncentives) { if (selected.Contains(incentive.Id)) { incentive.Selected = true; } } TempData.Clear(); } return(model); }
public async Task <IActionResult> Start(string accountId, string accountLegalEntityId) { var legalEntities = await _legalEntitiesService.Get(accountId); var legalEntity = legalEntities.FirstOrDefault(x => x.AccountLegalEntityId == accountLegalEntityId); return(View("Home", new HomeViewModel(accountId, accountLegalEntityId, legalEntity?.Name, legalEntity == null || !legalEntity.IsAgreementSigned, _configuration.ManageApprenticeshipSiteUrl, legalEntity == null || legalEntity.BankDetailsRequired))); }
public async Task <IActionResult> ListPayments(string accountId, string sortOrder, string sortField) { var legalEntities = await _legalEntitiesService.Get(accountId); if (legalEntities.Count() > 1) { return(RedirectToAction("ChooseOrganisation", new { accountId })); } return(RedirectToAction("ListPaymentsForLegalEntity", new { accountId, legalEntities.First().AccountLegalEntityId, sortOrder, sortField })); }
public async Task <IActionResult> Index(string accountId, string accountLegalEntityId) { var legalEntities = await _legalEntitiesService.Get(accountId); var selectedLegalEntity = legalEntities.FirstOrDefault(x => x.AccountLegalEntityId == accountLegalEntityId); var applicationsResponse = await _applicationService.GetList(accountId, accountLegalEntityId); var model = new HubPageViewModel(_externalLinksConfiguration.ManageApprenticeshipSiteUrl, accountId) { AccountLegalEntityId = accountLegalEntityId, OrganisationName = selectedLegalEntity?.Name, HasMultipleLegalEntities = legalEntities.Count() > 1 }; if (applicationsResponse.ApprenticeApplications.Any()) { model.ShowBankDetailsRequired = BankDetailsRequired(applicationsResponse); model.ShowAmendBankDetails = CanAmendBankDetails(applicationsResponse); model.BankDetailsApplicationId = applicationsResponse.FirstSubmittedApplicationId.Value; model.ShowAcceptNewEmployerAgreement = applicationsResponse.ApprenticeApplications.Any(a => (a.FirstPaymentStatus != null && a.FirstPaymentStatus.RequiresNewEmployerAgreement) || (a.SecondPaymentStatus != null && a.SecondPaymentStatus.RequiresNewEmployerAgreement)); } return(View(model)); }
public async Task <IActionResult> GetChooseOrganisation(ChooseOrganisationViewModel viewModel) { var legalEntities = await _legalEntitiesService.Get(viewModel.AccountId); if (legalEntities.Count() == 1) { return(RedirectToAction("Index", "Hub", new { viewModel.AccountId, accountLegalEntityId = legalEntities.First().AccountLegalEntityId })); } if (legalEntities.Count() > 1) { viewModel.AddOrganisations(legalEntities); viewModel.SetManageAccountsUrl(_configuration.ManageApprenticeshipSiteUrl); return(View("ChooseOrganisation", viewModel)); } return(RedirectToAction("Forbidden", "Apply", new { viewModel.AccountId })); }
public async Task <IActionResult> Start(string accountId, string accountLegalEntityId) { var legalEntities = await _legalEntitiesService.Get(accountId); var hasMultipleLegalEntities = legalEntities.Count() > 1; var legalEntity = legalEntities.FirstOrDefault(x => x.AccountLegalEntityId == accountLegalEntityId); var newAgreementRequired = (legalEntity != null && legalEntity.SignedAgreementVersion.HasValue && legalEntity.SignedAgreementVersion != NewAgreementVersion); return(View("Home", new HomeViewModel(accountId, accountLegalEntityId, legalEntity?.Name, hasMultipleLegalEntities, newAgreementRequired, _configuration.ManageApprenticeshipSiteUrl))); }
public async Task <IActionResult> AmendBankDetails(string accountId, Guid applicationId) { var application = await _applicationService.Get(accountId, applicationId, false, includeSubmitted : true); var legalEntity = await _legalEntitiesService.Get(accountId, application.AccountLegalEntityId); var model = new AmendBankDetailsViewModel(accountId, application.AccountLegalEntityId, applicationId, legalEntity.Name); return(View(model)); }
public async Task <string> BuildAchieveServiceUrl(string hashedAccountId, string hashedAccountLegalEntityId, Guid applicationId, string returnUrl, bool amendBankDetails = false) { var accountId = _hashingService.DecodeValue(hashedAccountId); var bankingDetails = await _bankingDetailsService.GetBankingDetails(accountId, applicationId, hashedAccountId); if (bankingDetails == null) { throw new ArgumentException("Requested banking details records cannot be found"); } if (bankingDetails.SignedAgreements == null || !bankingDetails.SignedAgreements.Any()) { throw new ArgumentException("Requested application records are invalid"); } var legalEntity = await _legalEntitiesService.Get(hashedAccountId, hashedAccountLegalEntityId); var data = new ApplicationInformationForExternalVerificationModel { ApplicationId = applicationId, LegalEntityName = legalEntity.Name, IsNew = !amendBankDetails, HashedAccountId = hashedAccountId, HashedLegalEntityId = legalEntity.HashedLegalEntityId, IncentiveAmount = bankingDetails.ApplicationValue, VendorId = bankingDetails.VendorCode, SubmittedByFullName = bankingDetails.SubmittedByName, SubmittedByEmailAddress = bankingDetails.SubmittedByEmail, NumberOfApprenticeships = bankingDetails.NumberOfApprenticeships, SignedAgreements = bankingDetails.SignedAgreements?.Select(x => new SignedAgreementModel { SignedByEmail = x.SignedByEmail, SignedByName = x.SignedByName, SignedDate = x.SignedDate }) }; if (amendBankDetails) { data.VendorId = legalEntity.VrfVendorId; data.LegalEntityName = legalEntity.Name; } var encryptedData = _dataEncryptionService.Encrypt(data.ToPsvString()).ToUrlString(); var journeyType = "new"; if (amendBankDetails) { journeyType = "amend"; } return($"{_configuration.AchieveServiceBaseUrl}?journey={journeyType}&return={returnUrl.ToUrlString()}&data={encryptedData}"); }
public async Task <IActionResult> Confirmation(string accountId, Guid applicationId) { var application = await _applicationService.Get(accountId, applicationId, includeApprenticeships : false); var legalEntity = await _legalEntitiesService.Get(accountId, application.AccountLegalEntityId); if (String.IsNullOrWhiteSpace(legalEntity.VrfCaseStatus)) { legalEntity.VrfCaseStatus = VrfStatusRequested; await _legalEntitiesService.UpdateVrfCaseStatus(legalEntity); } var showBankDetailsInReview = (!String.IsNullOrWhiteSpace(legalEntity.VrfCaseStatus) && legalEntity.VrfCaseStatus != VrfStatusCompleted); var model = new ConfirmationViewModel(accountId, application.AccountLegalEntityId, legalEntity.Name, showBankDetailsInReview); return(View(model)); }
protected async Task <string> GetLegalEntityName(string accountId, string accountLegalEntityId) { var legalEntity = await _legalEntitiesService.Get(accountId, accountLegalEntityId); return(legalEntity != null ? legalEntity.Name : string.Empty); }