예제 #1
0
        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();
        }
예제 #2
0
        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 }));
        }
예제 #3
0
        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 }));
        }