public When_OpportunityService_Is_Called_To_Update_Opportunity_Item() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); var opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityItemRepository = Substitute.For <IRepository <OpportunityItem> >(); var provisionGapRepository = Substitute.For <IRepository <ProvisionGap> >(); var referralRepository = Substitute.For <IRepository <Domain.Models.Referral> >(); var googleMapApiClient = Substitute.For <IGoogleMapApiClient>(); var opportunityPipelineReportWriter = Substitute.For <IFileWriter <OpportunityReportDto> >(); var dateTimeProvider = Substitute.For <IDateTimeProvider>(); _opportunityItemRepository .GetSingleOrDefaultAsync(Arg.Any <Expression <Func <OpportunityItem, bool> > >()) .Returns(new OpportunityItemBuilder().Build()); var opportunityService = new OpportunityService(mapper, opportunityRepository, _opportunityItemRepository, provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); var dto = new ProviderSearchDto { OpportunityId = OpportunityId, OpportunityItemId = OpportunityItemId, RouteId = 1, SearchRadius = 10, Postcode = "OX1 1AA" }; opportunityService.UpdateOpportunityItemAsync(dto).GetAwaiter().GetResult(); }
public async Task <IActionResult> SaveReferralAsync() { var selectedProviders = TempData["SelectedProviders"] as string; var saveReferralViewModel = JsonConvert.DeserializeObject <SaveReferralViewModel>(selectedProviders !); var opportunityDto = _mapper.Map <OpportunityDto>(saveReferralViewModel); var opportunityItemDto = _mapper.Map <OpportunityItemDto>(saveReferralViewModel); if (await _opportunityService.IsNewReferralAsync(saveReferralViewModel.OpportunityItemId)) { opportunityItemDto.OpportunityId = saveReferralViewModel.OpportunityId; if (opportunityItemDto.OpportunityId == 0) { opportunityItemDto.OpportunityId = await CreateOpportunityAsync(opportunityDto); } var opportunityItemId = await _opportunityService.CreateOpportunityItemAsync(opportunityItemDto); return(RedirectToRoute("GetPlacementInformation", new { opportunityItemId })); } var providerSearchDto = new ProviderSearchDto { OpportunityId = saveReferralViewModel.OpportunityId, OpportunityItemId = saveReferralViewModel.OpportunityItemId, SearchRadius = saveReferralViewModel.SearchRadius, Postcode = saveReferralViewModel.Postcode, RouteId = saveReferralViewModel.SelectedRouteId ?? 0, SearchResultProviderCount = saveReferralViewModel.SearchResultProviderCount }; await _opportunityService.UpdateOpportunityItemAsync(providerSearchDto); await _opportunityService.UpdateReferralsAsync(opportunityItemDto); return(RedirectToRoute("GetPlacementInformation", new { saveReferralViewModel.OpportunityItemId })); }
public async Task <IActionResult> SaveProvisionGapAsync(SaveProvisionGapViewModel viewModel) { var opportunityDto = _mapper.Map <OpportunityDto>(viewModel); var opportunityItemDto = _mapper.Map <OpportunityItemDto>(viewModel); if (await _opportunityService.IsNewProvisionGapAsync(viewModel.OpportunityItemId)) { opportunityItemDto.OpportunityId = viewModel.OpportunityId; if (opportunityItemDto.OpportunityId == 0) { opportunityItemDto.OpportunityId = await CreateOpportunityAsync(opportunityDto); } opportunityItemDto.ProvisionGap = new List <ProvisionGapDto> { new ProvisionGapDto() }; var opportunityItemId = await _opportunityService.CreateOpportunityItemAsync(opportunityItemDto); return(RedirectToRoute("GetPlacementInformation", new { opportunityItemId })); } var providerSearchDto = new ProviderSearchDto { OpportunityId = opportunityItemDto.OpportunityId, OpportunityItemId = opportunityItemDto.OpportunityItemId, SearchRadius = viewModel.SearchRadius, Postcode = viewModel.Postcode, RouteId = viewModel.SelectedRouteId ?? 0, SearchResultProviderCount = viewModel.SearchResultProviderCount }; await _opportunityService.UpdateOpportunityItemAsync(providerSearchDto); return(RedirectToRoute("GetPlacementInformation", new { opportunityItemDto.OpportunityItemId })); }