using Govor.API.Services; using Govor.API.Services.Authentication; using Govor.Core.Infrastructure.Extensions; using Govor.Core.Infrastructure.Validators; using Govor.Core.Models; using Govor.Core.Repositories; using Govor.Core.Repositories.Users; using Govor.Core.Services; using Govor.Data; using Govor.Data.Repositories; using Microsoft.EntityFrameworkCore; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; var builder = WebApplication.CreateBuilder(args); var configuration = builder.Configuration; var services = builder.Services; builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); builder.Services.Configure(configuration.GetSection(nameof(JwtOption))); // Add services builder.Services.AddSignalR(); builder.Services.AddAuthorization(); builder.Services.AddAuthentication("Bearer") .AddJwtBearer(); builder.Services.AddControllers(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped, UserValidator>(); builder.Services.AddDbContext( options => { options.UseNpgsql(builder.Configuration.GetConnectionString(nameof(GovorDbContext))); } ); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); //builder.Services.AddOpenApi(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { //app.MapOpenApi(); app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapControllers(); app.Map("/hello", [Authorize]() => "Hello World!"); app.Map("/", () => "Not for browser"); app.Run();