Files
mmorales.photo/back/ServicesExtensions/ServicesExtensions.cs
2025-08-25 18:52:59 +02:00

50 lines
1.8 KiB
C#

using back.persistance.data;
using System.Text.Json.Serialization;
using back.services.engine.SystemUser;
using DependencyInjector;
using System.Text.Json;
using Transactional.Abstractions.Interfaces;
using Transactional.Implementations.EntityFramework;
namespace back.ServicesExtensions;
public static partial class ServicesExtensions
{
public static IServiceCollection UseExtensions(this IServiceCollection services)
{
//var config =
services.ConfigureOptions();
services.AddMemoryCache();
services.AddDatabaseContext();
services.AddServices();
services.AddScoped<ITransactionalService<DataContext>, EntityFrameworkTransactionalService<DataContext>>();
services.AddSingleton(new JsonSerializerOptions {
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
AllowTrailingCommas = true,
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true,
Converters = {
new JsonStringEnumConverter(JsonNamingPolicy.CamelCase),
},
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase,
NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString,
ReadCommentHandling = JsonCommentHandling.Skip,
UnmappedMemberHandling = JsonUnmappedMemberHandling.Skip,
UnknownTypeHandling = JsonUnknownTypeHandling.JsonElement,
});
using var scope = services.BuildServiceProvider().CreateScope();
scope.ServiceProvider
.GetRequiredService<ISystemUserGenerator>().GenerateAsync().Wait();
return services;
}
}