57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
using API.Services;
|
|
using DAL.Contexts;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Serilog;
|
|
using System.Reflection;
|
|
using InvalidOperationException = System.InvalidOperationException;
|
|
|
|
namespace API
|
|
{
|
|
internal class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
|
|
ConfigurationManager configManager = builder.Configuration;
|
|
|
|
builder.Services.AddControllers();
|
|
builder.Services.AddEndpointsApiExplorer();
|
|
builder.Services.AddSwaggerGen(options =>
|
|
{
|
|
string xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
|
string xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
|
options.IncludeXmlComments(xmlPath, true);
|
|
});
|
|
|
|
builder.Host.UseSerilog((context, configuration) => configuration.ReadFrom.Configuration(context.Configuration));
|
|
|
|
builder.Services.AddDbContext<SASGContext>(options => { options.UseMySQL(builder.Configuration["connectionString"] ?? throw new InvalidOperationException("Connection String is null")); });
|
|
|
|
builder.Services.AddTransient<ColorService>();
|
|
builder.Services.AddTransient<EventService>();
|
|
builder.Services.AddTransient<GrantService>();
|
|
builder.Services.AddTransient<ImageService>();
|
|
builder.Services.AddTransient<PermissionService>();
|
|
builder.Services.AddTransient<SavedEventService>();
|
|
builder.Services.AddTransient<UserService>();
|
|
|
|
WebApplication app = builder.Build();
|
|
|
|
if (app.Environment.IsDevelopment())
|
|
{
|
|
app.UseSwagger();
|
|
app.UseSwaggerUI();
|
|
}
|
|
|
|
app.UseCookiePolicy(new CookiePolicyOptions
|
|
{
|
|
MinimumSameSitePolicy = SameSiteMode.Strict
|
|
});
|
|
|
|
app.UseHttpsRedirection();
|
|
app.MapControllers();
|
|
app.Run();
|
|
}
|
|
}
|
|
}
|