using AWSAppService; using AWSAppService.Data; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Amazon.XRay.Recorder.Handlers.AspNetCore; using Amazon.XRay.Recorder.Core; using System.Xml.Linq; using AWSAppService.Auth; namespace Musiquizza_React { public class Startup { private readonly string ConfigSection = "AWSConfiguration"; public Startup(IConfiguration configuration) { Configuration = configuration; AWSXRayRecorder.InitializeInstance(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.AddOptions(); // Register the IConfiguration instance which MyOptions binds against. services.Configure<AWSOptions>(Configuration.GetSection(ConfigSection)); services.AddScoped(typeof(IAWSAppService<IData>), typeof(DBDataService<IData>)); // In production, the React files will be served from this directory services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/build"; }); services.AddMvc(); } // 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(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseXRay("Musiquizza_React"); app.UseStaticFiles(); app.UseSpaStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); app.UseSpa(spa => { spa.Options.SourcePath = "ClientApp"; if (env.IsDevelopment()) { spa.UseReactDevelopmentServer(npmScript: "start"); } }); } } }