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