AutoMapper Configuration
using AutoMapper;
using Christopher.Snay.Sample.Configuration.AutoMapperProfiles;
using Christopher.Snay.Sample.Configuration.AutoMapperProfiles.Dtos;
using Microsoft.Extensions.DependencyInjection;
namespace Christopher.Snay.Sample.Configuration
{
public static class AutoMapperConfiguration
{
public static void AddAutoMapperConfiguration(this IServiceCollection services)
{
services.AddSingleton(new MapperConfiguration(config =>
{
config.AddProfile<SampleMapperProfile1>();
config.AddProfile<SampleMapperProfile2>();
}).CreateMapper());
}
}
}
CORS Configuration
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
namespace Christopher.Snay.Sample.Configuration
{
public static class CorsConfiguration
{
public static IApplicationBuilder UseCorsConfiguration(this IApplicationBuilder app)
{
return app.UseCors("CorsPolicy");
}
public static IServiceCollection AddCorsConfiguration(this IServiceCollection services)
{
var origins = new List<string>
{
"http://localhost:4200",
"http://sample-server",
};
return services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder =>
{
builder
.WithOrigins(origins.ToArray())
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
}
}
}
HttpClientFactory Configuration
using System.Net.Http.Headers;
using System.Net.Mime;
using Christopher.Snay.Sample.Services.RetailerServices;
using Microsoft.Extensions.DependencyInjection;
namespace Christopher.Snay.Sample.Configuration
{
public static class HttpConfiguration
{
public static void AddHttpClientConfiguration(this IServiceCollection services)
{
services.AddHttpClient(nameof(ISampleService1), x => x.BaseAddress
= new Uri("https://www.api.sample.com/search"));
services.AddHttpClient(nameof(ISampleService2), x => x.BaseAddress
= new Uri("https://www.api.sample2.com/search"));
services.AddHttpClient(nameof(ISampleService3), x =>
{
x.BaseAddress = new Uri("https://www.api.sample3.com/search");
x.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue(new ProductHeaderValue("Mozilla", "5.0")));
x.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(MediaTypeNames.Application.Json));
x.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
x.DefaultRequestHeaders.Host = "www.sample.com";
x.DefaultRequestHeaders.Connection.Add("keep-alive");
x.DefaultRequestHeaders.Add("cookie", "Bearer ABC123");
}
}
}
}