public static IServiceCollection AddAgents(this IServiceCollection services, Action <BlogRepositoriesOptions> configureOptions) { var options = new BlogRepositoriesOptions(); configureOptions(options); services.AddHttpClient <IPostAgent, PostsAgent>( async(services, client) => { var accessor = services.GetRequiredService <IHttpContextAccessor>(); var accessToken = await accessor.HttpContext.GetTokenAsync("access_token"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken); client.DefaultRequestHeaders.Add("User-Agent", options.CallerName); client.BaseAddress = new Uri(options.UrlService); }); services.AddHttpClient <ICommentsAgent, CommentsAgent>( async(services, client) => { var accessor = services.GetRequiredService <IHttpContextAccessor>(); var accessToken = await accessor.HttpContext.GetTokenAsync("access_token"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken); client.DefaultRequestHeaders.Add("User-Agent", options.CallerName); client.BaseAddress = new Uri(options.UrlService); }); return(services); }
public static IServiceCollection AddBlogRepositories(this IServiceCollection services, Action <BlogRepositoriesOptions> configureOptions) { var options = new BlogRepositoriesOptions(); configureOptions(options); services.AddScoped <IUsuarioRepository, UsuarioRepository>(); services.AddScoped <IComentarioRepository, ComentarioRepository>(); services.AddScoped <IPostRepository, PostRepository>(); services.AddScoped <BlogUnitOfWork>(); services.AddDbContext <BlogContext>(opt => { opt.UseSqlServer(options.ConnectionString); }); return(services); }