using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Diagram_API
{
  public class Startup
  {
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
      services.AddCors(options =>
      {
        options.AddPolicy(
          name: "All",
          builder => {
            builder
            .AllowAnyOrigin()
            .AllowAnyHeader()
            .AllowAnyMethod()
            //.AllowCredentials()
            .SetIsOriginAllowed((host) => true);
          });
      });
      services.AddControllers();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
      app.UseRouting();
      app.UseCors(
        options => options
        .AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod()
        //.AllowCredentials()
        .SetIsOriginAllowed((host) => true)
        );
      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllerRoute(name: "CurrCycles", pattern: "/currcycles",
          defaults: new { controller = "Cycles", action = "CurrCycles" });

        endpoints.MapControllerRoute(name: "ListCurrencies", pattern: "/listcurrencies",
          defaults: new { controller = "Rates", action = "GetListCurrencies" });
        endpoints.MapControllerRoute(name: "CurrentRates", pattern: "/currentrates",
          defaults: new { controller = "Rates", action = "GetCurrentRates" });
        endpoints.MapControllerRoute(name: "RatesList", pattern: "/rateslist",
          defaults: new { controller = "Rates", action = "GetRatesList" });
      });
    }
  }
}
