Files
AI-Stock-Trader/WebServer/Program.cs
T

45 lines
1.4 KiB
C#

using WebServer.Components;
using PythonInterop;
using DataBase;
// Load the module in globally and use correct path for local or docker runners
#if DEBUG
AIModule interopModule = new AIModule(PythonPathBase: "/usr/", PythonVersion: "python3.11");
#else
AIModule interopModule = new AIModule();
#endif
if (args.Contains("Pull-Stock-Data")) {
interopModule.TrainAI();
} else {
// Create the webapp
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents().AddInteractiveServerComponents();
// Insert the DB driver for Dependency Injection
builder.Services.AddSingleton<DbDriver>();
// Insert the python modlue for Dependency Injection
builder.Services.AddSingleton(interopModule);
// Build the app
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment()) {
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
// Conffigure policies
app.UseHttpsRedirection();
app.UseAntiforgery();
app.MapStaticAssets();
app.MapRazorComponents<App>().AddInteractiveServerRenderMode();
// Start the web app
app.Run();
}