using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
 
namespace MicroserviceExample
{
  public class Startup
  {
    public Startup(IConfiguration configuration)
    {
      this.Configuration = configuration;
    }
 
    public IConfiguration Configuration { get; }
 
    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
 
      services.AddMvc(delegate (MvcOptions options)
      {
        options.Filters.Add(typeof(LoggingActionFilter));
        if (SampledLoggingActionFilter.IsInitialized)
        {
          options.Filters.Add(typeof(SampledLoggingActionFilter));
        }
      }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
 
      services.AddHttpContextAccessor();
 
    }
 
    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
      if (env.IsDevelopment())
      {
        app.UseDeveloperExceptionPage();
      }
 
      app.UseMvc();
    }
  }
 
 
}