using Easy.Options; using Identity.Api.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; namespace Identity.Api.Infrastructure; public static class CustomExtensions { public static void AddCustomAuthentication(this WebApplicationBuilder builder, string authorityUrl) { builder.Services.AddAuthentication("Bearer") .AddJwtBearer("Bearer", options => { options.Authority = authorityUrl; options.TokenValidationParameters = new TokenValidationParameters { ValidateAudience = false }; }); } public static void AddCustomDbContext(this WebApplicationBuilder builder) { var sqlConnectionString = builder.Configuration["ConnectionString"]; builder.Services.AddDbContext(optionsBuilder => { if (!string.IsNullOrEmpty(sqlConnectionString)) { optionsBuilder.UseMySql(sqlConnectionString, ServerVersion.Parse("8.0.28-mysql")); } }); builder.Services.AddTransient(); builder.Services.Configure(options => { options.SequentialGuidType = Easy.Enums.SequentialGuidType.SequentialAsString; }); } }