64 lines
2.0 KiB
C#
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(); |