SoftTraderBackend/Backend.cs
2026-03-20 12:38:18 -04:00

64 lines
2.0 KiB
C#

using Backend.DatabaseHandler;
using Backend.ServiceHander;
using Backend.Interface;
using Microsoft.AspNetCore.HttpOverrides;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSingleton<IHistoricalMarketDataCache, PostgresHistoricalMarketDataCache>();
builder.Services.AddSingleton<MarketDataService>();
builder.Services.AddSingleton<IUserInterestStore, PostgresUserInterestStore>();
builder.Services.AddSingleton<FinBertScoringService>();
builder.Services.AddSingleton<INewsSentimentStore, PostgresNewsSentimentStore>();
builder.Services.AddSingleton<NewsSentimentService>();
//builder.Services.AddSingleton<EdgarFilingService>();
builder.Services.AddHostedService<NewsSentimentRefreshService>();
builder.Services.AddSingleton<IUserLocationStore, PostgresUserLocationStore>();
builder.Services.AddSingleton<WeatherService>();
builder.Services.AddSingleton<IAnnotationStore, PostgresAnnotationStore>();
builder.Services.AddSingleton<IAlertStore, PostgresAlertStore>();
builder.Services.AddSingleton<IAlertEvaluator, PriceThresholdEvaluator>();
builder.Services.AddSingleton<IAlertEvaluator, PercentChangeEvaluator>();
builder.Services.AddSingleton<IAlertEvaluator, PriceSpikeEvaluator>();
builder.Services.AddSingleton<IAlertEvaluator, TrailingPriceEvaluator>();
builder.Services.AddHostedService<AlertEvaluationService>();
builder.Services.AddCors(options =>
{
options.AddPolicy("Frontend", policy =>
{
policy
// ---- DEVELOPMENT ----
.AllowAnyOrigin()
// ---- PRODUCTION ----
// .WithOrigins("https://app.dongfeng-systems.org")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.UseForwardedHeaders();
app.UseHttpsRedirection();
app.UseCors("Frontend");
app.MapControllers();
app.Run();