public async Task <IActionResult> ChooseEmployer(ReservationsRouteModel routeModel) { if (!routeModel.UkPrn.HasValue) { throw new ArgumentException("UkPrn must be set", nameof(ReservationsRouteModel.UkPrn)); } var getTrustedEmployersResponse = await _mediator.Send(new GetTrustedEmployersQuery { UkPrn = routeModel.UkPrn.Value }); // eoi filter var eoiEmployers = new List <Domain.Employers.Employer>(); foreach (var employer in getTrustedEmployersResponse.Employers) { var getLegalEntitiesResponse = await _mediator.Send(new GetLegalEntitiesQuery { AccountId = employer.AccountId }); if (getLegalEntitiesResponse.AccountLegalEntities.All(entity => !entity.IsLevy && entity.AgreementType == AgreementType.NonLevyExpressionOfInterest)) { eoiEmployers.Add(employer); } } var viewModel = new ChooseEmployerViewModel { Employers = eoiEmployers }; return(View(viewModel)); }
public async Task <IActionResult> ChooseEmployer(ReservationsRouteModel routeModel) { if (!routeModel.UkPrn.HasValue) { throw new ArgumentException("UkPrn must be set", nameof(ReservationsRouteModel.UkPrn)); } var getTrustedEmployersResponse = await _mediator.Send(new GetTrustedEmployersQuery { UkPrn = routeModel.UkPrn.Value }); var eoiEmployers = new List <AccountLegalEntity>(); foreach (var employer in getTrustedEmployersResponse.Employers) { employer.AccountLegalEntityPublicHashedId = _encodingService.Encode(employer.AccountLegalEntityId, EncodingType.PublicAccountLegalEntityId); eoiEmployers.Add(employer); } var viewModel = new ChooseEmployerViewModel { Employers = eoiEmployers }; return(View(viewModel)); }
public void Arrange() { _permissionsResponse = new GetProviderRelationshipsWithPermissionQueryResponse { ProviderRelationships = new List <AccountProviderLegalEntityDto>() }; _mediator = new Mock <IMediator>(); _mediator.Setup(x => x.Send(It.IsAny <GetProviderRelationshipsWithPermissionQueryRequest>(), new CancellationToken())) .ReturnsAsync(_permissionsResponse); _chooseEmployerViewModel = new ChooseEmployerViewModel(); _selectEmployerMapper = new Mock <ISelectEmployerMapper>(); _selectEmployerMapper.Setup(x => x.Map(It.IsAny <IEnumerable <AccountProviderLegalEntityDto> >(), EmployerSelectionAction.CreateCohort)) .Returns(_chooseEmployerViewModel); _orchestrator = new SelectEmployerOrchestrator(_mediator.Object, _selectEmployerMapper.Object, Mock.Of <IHashingService>(), Mock.Of <IProviderCommitmentsLogger>()); }
public ChooseEmployerViewModel Map(IEnumerable <AccountProviderLegalEntityDto> source, EmployerSelectionAction action) { var result = new ChooseEmployerViewModel(); var legalEntities = new List <LegalEntityViewModel>(); foreach (var relationship in source) { legalEntities.Add(new LegalEntityViewModel { EmployerAccountPublicHashedId = relationship.AccountPublicHashedId, EmployerAccountName = relationship.AccountName, EmployerAccountLegalEntityPublicHashedId = relationship.AccountLegalEntityPublicHashedId, EmployerAccountLegalEntityName = relationship.AccountLegalEntityName }); } result.LegalEntities = legalEntities; result.EmployerSelectionAction = action; switch (action) { case EmployerSelectionAction.CreateCohort: result.ControllerName = "CreateCohort"; result.Title = "Create Cohort"; result.Description = "Choose an employer you want to create a new cohort on behalf of."; break; case EmployerSelectionAction.CreateReservation: result.ControllerName = "Reservation"; result.Title = "Reserve Funds"; result.Description = "Choose an employer you want to reserve funds on behalf of."; break; } return(result); }