Exemplo n.º 1
0
        private async Task <int> CreateOrUpdateQualificationAsync(ProviderVenueQualificationDto providerVenueQualification, int providerVenueId)
        {
            var qualification = await _qualificationService.GetQualificationAsync(providerVenueQualification.LarId);

            int qualificationId;

            if (qualification == null)
            {
                var missingQualificationViewModel = new MissingQualificationViewModel
                {
                    LarId           = providerVenueQualification.LarId,
                    ProviderVenueId = providerVenueId,
                    Title           = providerVenueQualification.QualificationTitle,
                    ShortTitle      = providerVenueQualification.QualificationShortTitle,
                    Source          = Source
                };

                qualificationId = await _qualificationService.CreateQualificationEntityAsync(missingQualificationViewModel);

                Debug.WriteLine($">>>> Created Removing Qualification {qualificationId}");
            }
            else
            {
                qualificationId = qualification.Id;
            }

            return(qualificationId);
        }
        public When_ProviderVenueQualificationService_Is_Called_With_New_Qualification()
        {
            _providerService                  = Substitute.For <IProviderService>();
            _providerVenueService             = Substitute.For <IProviderVenueService>();
            _providerQualificationService     = Substitute.For <IProviderQualificationService>();
            _qualificationRouteMappingService = Substitute.For <IQualificationRouteMappingService>();
            _qualificationService             = Substitute.For <IQualificationService>();
            _routePathService                 = Substitute.For <IRoutePathService>();

            var dtoList = new ValidProviderVenueQualificationDtoListBuilder()
                          .AddVenue()
                          .AddQualificationWithRoutes()
                          .Build();
            var dto = dtoList.First();

            _providerService.SearchAsync(10000001)
            .Returns(new ProviderSearchResultDto
            {
                Id    = 1,
                UkPrn = dto.UkPrn,
                Name  = dto.ProviderName
            });

            _providerService.GetProviderDetailByIdAsync(1)
            .Returns(new ProviderDetailViewModel
            {
                UkPrn                 = dto.UkPrn,
                Name                  = dto.ProviderName,
                DisplayName           = dto.DisplayName,
                IsCdfProvider         = dto.IsCdfProvider,
                IsEnabledForReferral  = dto.IsEnabledForReferral,
                PrimaryContact        = dto.PrimaryContact,
                PrimaryContactEmail   = dto.PrimaryContactEmail,
                PrimaryContactPhone   = dto.PrimaryContactPhone,
                SecondaryContact      = dto.SecondaryContact,
                SecondaryContactEmail = dto.SecondaryContactEmail,
                SecondaryContactPhone = dto.SecondaryContactPhone
            });

            _providerVenueService
            .GetVenueWithTrimmedPostcodeAsync(1, "CV1 2WT")
            .Returns(new ProviderVenueDetailViewModel
            {
                Id                   = 1,
                ProviderId           = 1,
                Postcode             = dto.VenuePostcode,
                Name                 = dto.VenueName,
                IsEnabledForReferral = dto.VenueIsEnabledForReferral,
                Qualifications       = new List <QualificationDetailViewModel>()
            });

            _qualificationService
            .GetQualificationAsync("1234567X")
            .Returns((QualificationDetailViewModel)null);

            _qualificationService
            .CreateQualificationEntityAsync(Arg.Is <MissingQualificationViewModel>(
                                                p => p.LarId == "1234567X"))
            .Returns(10);         //Qualification id

            _providerQualificationService
            .GetProviderQualificationAsync(Arg.Any <int>(), Arg.Any <int>())
            .Returns((ProviderQualificationDto)null);

            _routePathService
            .GetRouteSummaryByNameAsync("Agriculture, environmental and animal care")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 1,
                Name = "Agriculture, environmental and animal care"
            });
            _routePathService
            .GetRouteSummaryByNameAsync("Digital")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 3,
                Name = "Digital"
            });

            _qualificationRouteMappingService
            .GetQualificationRouteMappingAsync(Arg.Any <int>(), Arg.Any <int>())
            .Returns((QualificationRouteMappingViewModel)null);

            var providerVenueQualificationService = new ProviderVenueQualificationService
                                                    (
                _providerService,
                _providerVenueService,
                _providerQualificationService,
                _qualificationService,
                _routePathService,
                _qualificationRouteMappingService
                                                    );

            _results = providerVenueQualificationService.UpdateAsync(dtoList).GetAwaiter().GetResult();
        }