50 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|