public When_Recording_Referrals_And_Employer_Details_Is_Submitted_Successfully() { _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.IsReferralOpportunityItemAsync(OpportunityItemId).Returns(true); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); var referralService = Substitute.For <IReferralService>(); var config = new MapperConfiguration(c => { c.AddMaps(typeof(EmployerDtoMapper).Assembly); c.ConstructServicesUsing(type => type.Name.Contains("LoggedInUserEmailResolver") ? new LoggedInUserEmailResolver <EmployerDetailsViewModel, EmployerDetailDto>(httpContextAccessor) : type.Name.Contains("LoggedInUserNameResolver") ? (object)new LoggedInUserNameResolver <EmployerDetailsViewModel, EmployerDetailDto>(httpContextAccessor) : type.Name.Contains("UtcNowResolver") ? new UtcNowResolver <EmployerDetailsViewModel, EmployerDetailDto>(new DateTimeProvider()) : null); }); var mapper = new Mapper(config); var employerController = new EmployerController(null, _opportunityService, referralService, mapper); var controllerWithClaims = new ClaimsBuilder <EmployerController>(employerController) .AddStandardUser() .AddUserName(ModifiedBy) .Build(); httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext); _result = controllerWithClaims.SaveOpportunityEmployerDetailsAsync(_viewModel).GetAwaiter().GetResult(); }
public async Task <IActionResult> SaveOpportunityEmployerDetailsAsync(EmployerDetailsViewModel viewModel) { Validate(viewModel); if (!ModelState.IsValid) { return(View("Details", viewModel)); } var employerDetailDto = _mapper.Map <EmployerDetailDto>(viewModel); await _opportunityService.UpdateOpportunityAsync(employerDetailDto); var isReferralOpportunityItem = await _opportunityService.IsReferralOpportunityItemAsync(viewModel.OpportunityItemId); if (isReferralOpportunityItem) { return(RedirectToRoute("GetCheckAnswers", new { viewModel.OpportunityItemId })); } return(RedirectToAction("SaveCheckAnswers", "Opportunity", new { viewModel.OpportunityId, viewModel.OpportunityItemId })); }