using System.IO; using Luticate2.Utils.Controllers; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Logging; using TestUtils.DataAccess; using WebApiUtils.Business; using WebApiUtils.DataAccess; namespace WebApiUtils { public class Startup { public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); if (env.IsEnvironment("Development")) { // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately. builder.AddApplicationInsightsSettings(developerMode: true); } builder.AddEnvironmentVariables(); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.AddLuticateUtils(options => options.Version = "dev"); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddDbContext(options => { options.UseNpgsql(Configuration.GetConnectionString("default")); options.UseInternalServiceProvider(new ServiceCollection() .AddEntityFrameworkNpgsqlLuticate() .AddEntityFrameworkNpgsql() .BuildServiceProvider()); }, ServiceLifetime.Transient); services.AddMvc() .AddLuticateUtils(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); // app.UseApplicationInsightsRequestTelemetry(); // // app.UseApplicationInsightsExceptionTelemetry(); app.UseStaticFiles(new StaticFileOptions { ServeUnknownFileTypes = true, FileProvider = new PhysicalFileProvider("/tmp/luticate2"), RequestPath = new PathString("/upload") }); app.UseLuticateUtils(); app.UseMvc(); } } }