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(); }