public FindACourseClient(HttpClient httpClient, CourseSearchClientSettings courseSearchClientSettings, IAuditService auditService, ILogger <IFindACourseClient> logger = null) { correlationId = Guid.NewGuid(); this.logger = logger; this.auditService = auditService; this.courseSearchClientSettings = courseSearchClientSettings; this.httpClient = httpClient; }
private static void AddCoreServices(IServiceCollection services, CourseSearchClientSettings courseSearchClientSettings) { services.AddSingleton(courseSearchClientSettings); if (courseSearchClientSettings?.CourseSearchAuditCosmosDbSettings?.DatabaseId != null) { services.AddScoped <ICosmosRepository <ApiAuditRecordCourse>, CosmosRepository <ApiAuditRecordCourse> >(s => { var cosmosDbAuditConnection = courseSearchClientSettings.CourseSearchAuditCosmosDbSettings; var documentClient = new DocumentClient(cosmosDbAuditConnection.EndpointUrl, cosmosDbAuditConnection.AccessKey); var isDevelopmentEnvironment = courseSearchClientSettings.CourseSearchAuditCosmosDbSettings.Environment?.ToLowerInvariant().Contains(Constants.LocalEnvironment); var repository = new CosmosRepository <ApiAuditRecordCourse>(cosmosDbAuditConnection, documentClient); repository.InitialiseDatabaseAsync(isDevelopmentEnvironment.GetValueOrDefault()).GetAwaiter().GetResult(); return(repository); }); } services.AddScoped <IFindACourseClient, FindACourseClient>(); services.AddScoped <IAuditService, AuditService>(); }
public static IServiceCollection AddFindACourseTransientFaultHandlingPolicies(this IServiceCollection services, CourseSearchClientSettings courseSearchClientSettings, IPolicyRegistry <string> policyRegistry = null) { var policyOptions = courseSearchClientSettings?.PolicyOptions; if (policyRegistry == null) { policyRegistry = services.AddPolicyRegistry(); } services.AddPolicies(policyRegistry, nameof(CourseSearchClientSettings), policyOptions) .AddHttpClient <IFindACourseClient, FindACourseClient>(courseSearchClientSettings?.CourseSearchSvcSettings, nameof(CourseSearchClientSettings), nameof(PolicyOptions.HttpRetry), nameof(PolicyOptions.HttpCircuitBreaker)); return(services); }
public static IServiceCollection AddFindACourseServicesWithoutFaultHandling(this IServiceCollection services, CourseSearchClientSettings courseSearchClientSettings) { AddCoreServices(services, courseSearchClientSettings); return(services); }