public ProviderVersionUpdateCheckService( IPoliciesApiClient policiesApiClient, ILogger logger, IProvidersResiliencePolicies resiliencePolicies, IProviderVersionsMetadataRepository providerVersionMetadata, IFundingDataZoneApiClient fundingDataZoneApiClient, ISpecificationsApiClient specificationsApiClient, IMapper mapper) { Guard.ArgumentNotNull(policiesApiClient, nameof(policiesApiClient)); Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies)); Guard.ArgumentNotNull(resiliencePolicies.PoliciesApiClient, nameof(resiliencePolicies.PoliciesApiClient)); Guard.ArgumentNotNull(resiliencePolicies.ProviderVersionMetadataRepository, nameof(resiliencePolicies.ProviderVersionMetadataRepository)); Guard.ArgumentNotNull(resiliencePolicies.FundingDataZoneApiClient, nameof(resiliencePolicies.FundingDataZoneApiClient)); Guard.ArgumentNotNull(resiliencePolicies.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient)); Guard.ArgumentNotNull(providerVersionMetadata, nameof(providerVersionMetadata)); Guard.ArgumentNotNull(fundingDataZoneApiClient, nameof(fundingDataZoneApiClient)); Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _policiesApiClient = policiesApiClient; _providerVersionMetadata = providerVersionMetadata; _fundingDataZoneApiClient = fundingDataZoneApiClient; _specificationsApiClient = specificationsApiClient; _mapper = mapper; _logger = logger; _policiesApiClientPolicy = resiliencePolicies.PoliciesApiClient; _providerVersionMetadataPolicy = resiliencePolicies.ProviderVersionMetadataRepository; _fundingDataZoneApiClientPolicy = resiliencePolicies.FundingDataZoneApiClient; _specificationsApiClientPolicy = resiliencePolicies.SpecificationsApiClient; }
public FundingStreamProviderVersionService(IProviderVersionsMetadataRepository providerVersionMetadata, IProviderVersionService providerVersionService, IProviderVersionSearchService providerVersionSearch, IValidator <SetFundingStreamCurrentProviderVersionRequest> setCurrentRequestValidator, IProvidersResiliencePolicies resiliencePolicies, ILogger logger, IMapper mapper) { Guard.ArgumentNotNull(providerVersionMetadata, nameof(providerVersionMetadata)); Guard.ArgumentNotNull(providerVersionService, nameof(providerVersionService)); Guard.ArgumentNotNull(providerVersionSearch, nameof(providerVersionSearch)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionMetadataRepository, nameof(resiliencePolicies.ProviderVersionMetadataRepository)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionsSearchRepository, nameof(resiliencePolicies.ProviderVersionsSearchRepository)); Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _providerVersionMetadata = providerVersionMetadata; _providerVersionMetadataPolicy = resiliencePolicies.ProviderVersionMetadataRepository; _providerVersionSearchPolicy = resiliencePolicies.ProviderVersionsSearchRepository; _logger = logger; _providerVersionSearch = providerVersionSearch; _setCurrentRequestValidator = setCurrentRequestValidator; _providerVersionService = providerVersionService; _mapper = mapper; }
public ProviderSnapshotDataLoadService(ILogger logger, ISpecificationsApiClient specificationsApiClient, IProviderVersionService providerVersionService, IProvidersResiliencePolicies resiliencePolicies, IFundingDataZoneApiClient fundingDataZoneApiClient, IMapper mapper, IJobManagement jobManagement) : base(jobManagement, logger) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient)); Guard.ArgumentNotNull(providerVersionService, nameof(providerVersionService)); Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient)); Guard.ArgumentNotNull(resiliencePolicies?.FundingDataZoneApiClient, nameof(resiliencePolicies.FundingDataZoneApiClient)); Guard.ArgumentNotNull(fundingDataZoneApiClient, nameof(fundingDataZoneApiClient)); Guard.ArgumentNotNull(mapper, nameof(mapper)); Guard.ArgumentNotNull(jobManagement, nameof(jobManagement)); _logger = logger; _specificationsApiClient = specificationsApiClient; _providerVersionService = providerVersionService; _specificationsApiClientPolicy = resiliencePolicies.SpecificationsApiClient; _fundingDataZoneApiClientPolicy = resiliencePolicies.FundingDataZoneApiClient; _fundingDataZoneApiClient = fundingDataZoneApiClient; _mapper = mapper; _jobManagement = jobManagement; }
public ScopedProvidersService(ICacheProvider cacheProvider, IResultsApiClient resultsApiClient, ISpecificationsApiClient specificationsApiClient, IProviderVersionService providerVersionService, IScopedProvidersServiceSettings scopedProvidersServiceSettings, IFileSystemCache fileSystemCache, IJobManagement jobManagement, IProvidersResiliencePolicies providersResiliencePolicies, ILogger logger) : base(jobManagement, logger) { Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(resultsApiClient, nameof(resultsApiClient)); Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient)); Guard.ArgumentNotNull(providerVersionService, nameof(providerVersionService)); Guard.ArgumentNotNull(scopedProvidersServiceSettings, nameof(scopedProvidersServiceSettings)); Guard.ArgumentNotNull(fileSystemCache, nameof(fileSystemCache)); Guard.ArgumentNotNull(jobManagement, nameof(jobManagement)); Guard.ArgumentNotNull(providersResiliencePolicies?.SpecificationsApiClient, nameof(providersResiliencePolicies.SpecificationsApiClient)); Guard.ArgumentNotNull(providersResiliencePolicies?.ResultsApiClient, nameof(providersResiliencePolicies.ResultsApiClient)); Guard.ArgumentNotNull(providersResiliencePolicies?.CacheProvider, nameof(providersResiliencePolicies.CacheProvider)); Guard.ArgumentNotNull(logger, nameof(logger)); _cachePolicy = providersResiliencePolicies.CacheProvider; _specificationsPolicy = providersResiliencePolicies.SpecificationsApiClient; _resultsPolicy = providersResiliencePolicies.ResultsApiClient; _cacheProvider = cacheProvider; _resultsApiClient = resultsApiClient; _specificationsApiClient = specificationsApiClient; _providerVersionService = providerVersionService; _fileSystemCache = fileSystemCache; _scopedProvidersServiceSettings = scopedProvidersServiceSettings; _jobManagement = jobManagement; _logger = logger; }
private IProvidersResiliencePolicies CreateResiliencePolicies() { IProvidersResiliencePolicies providersResiliencePolicies = Substitute.For <IProvidersResiliencePolicies>(); providersResiliencePolicies.ProviderVersionMetadataRepository = Policy.NoOpAsync(); providersResiliencePolicies.ProviderVersionsSearchRepository = Policy.NoOpAsync(); return(providersResiliencePolicies); }
public ProviderVersionSearchService(ILogger logger, ISearchRepository <ProvidersIndex> searchRepository, IProviderVersionsMetadataRepository providerVersionsMetadataRepository, IProvidersResiliencePolicies resiliencePolicies, IProviderVersionService providerVersionService) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(searchRepository, nameof(searchRepository)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionsSearchRepository, nameof(resiliencePolicies.ProviderVersionsSearchRepository)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionMetadataRepository, nameof(resiliencePolicies.ProviderVersionMetadataRepository)); _logger = logger; _searchRepository = searchRepository; _searchRepositoryPolicy = resiliencePolicies.ProviderVersionsSearchRepository; _providerVersionsMetadataRepository = providerVersionsMetadataRepository; _providerVersionsMetadataRepositoryPolicy = resiliencePolicies.ProviderVersionMetadataRepository; _providerVersionService = providerVersionService; }
public SetFundingStreamCurrentProviderVersionRequestValidator(IProviderVersionsMetadataRepository providerVersions, IPoliciesApiClient policiesApiClient, IProvidersResiliencePolicies resiliencePolicies) { Guard.ArgumentNotNull(providerVersions, nameof(providerVersions)); Guard.ArgumentNotNull(policiesApiClient, nameof(policiesApiClient)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionMetadataRepository, nameof(resiliencePolicies.ProviderVersionMetadataRepository)); Guard.ArgumentNotNull(resiliencePolicies?.PoliciesApiClient, nameof(resiliencePolicies.PoliciesApiClient)); RuleFor(_ => _.FundingStreamId) .Cascade(CascadeMode.StopOnFirstFailure) .NotEmpty() .CustomAsync(async(fundingStreamId, context, cancellationToken) => { ApiResponse <FundingStream> response = await resiliencePolicies.PoliciesApiClient.ExecuteAsync(() => policiesApiClient.GetFundingStreamById(fundingStreamId)); if (response?.Content == null) { context.AddFailure(new ValidationFailure("FundingStreamId", $"No funding stream located with Id {fundingStreamId}")); } }); RuleFor(_ => _.ProviderVersionId) .Cascade(CascadeMode.StopOnFirstFailure) .NotEmpty() .CustomAsync(async(providerVersionId, context, cancellationToken) => { ProviderVersionMetadata response = await resiliencePolicies.ProviderVersionMetadataRepository.ExecuteAsync(() => providerVersions.GetProviderVersionMetadata(providerVersionId)); if (response == null) { context.AddFailure(new ValidationFailure("ProviderVersionId", $"No provider version located with Id {providerVersionId}")); } }); }
public ProviderVersionService(ICacheProvider cacheProvider, IBlobClient blobClient, ILogger logger, IValidator <ProviderVersionViewModel> providerVersionModelValidator, IProviderVersionsMetadataRepository providerVersionMetadataRepository, IProvidersResiliencePolicies resiliencePolicies, IMapper mapper, IFileSystemCache fileSystemCache, IProviderVersionServiceSettings providerVersionServiceSettings, ISearchRepository <ProvidersIndex> searchRepository) { Guard.ArgumentNotNull(blobClient, nameof(blobClient)); Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(providerVersionModelValidator, nameof(providerVersionModelValidator)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionMetadataRepository, nameof(resiliencePolicies.ProviderVersionMetadataRepository)); Guard.ArgumentNotNull(resiliencePolicies?.BlobRepositoryPolicy, nameof(resiliencePolicies.BlobRepositoryPolicy)); Guard.ArgumentNotNull(resiliencePolicies?.CacheProvider, nameof(resiliencePolicies.CacheProvider)); Guard.ArgumentNotNull(resiliencePolicies?.ProviderVersionsSearchRepository, nameof(resiliencePolicies.ProviderVersionsSearchRepository)); Guard.ArgumentNotNull(mapper, nameof(mapper)); Guard.ArgumentNotNull(fileSystemCache, nameof(fileSystemCache)); Guard.ArgumentNotNull(providerVersionServiceSettings, nameof(providerVersionServiceSettings)); Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(searchRepository, nameof(searchRepository)); _cacheProvider = cacheProvider; _blobClient = blobClient; _logger = logger; _providerVersionModelValidator = providerVersionModelValidator; _providerVersionMetadataRepository = providerVersionMetadataRepository; _providerVersionMetadataRepositoryPolicy = resiliencePolicies.ProviderVersionMetadataRepository; _providersSearchPolicy = resiliencePolicies.ProviderVersionsSearchRepository; _cachePolicy = resiliencePolicies.CacheProvider; _blobRepositoryPolicy = resiliencePolicies.BlobRepositoryPolicy; _mapper = mapper; _fileSystemCache = fileSystemCache; _providerVersionServiceSettings = providerVersionServiceSettings; _searchRepository = searchRepository; }