12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using EVCB_OCPP.DBAPI;
- using EVCB_OCPP.DBAPI.Jobs;
- using EVCB_OCPP.DBAPI.Services;
- using EVCB_OCPP.DBAPI.Services.DbService;
- using EVCB_OCPP.DBAPI.Services.ServerMessageServices;
- using EVCB_OCPP.Domain.Extensions;
- using Microsoft.Extensions.Hosting;
- using NLog.Extensions.Logging;
- using NLog.Web;
- using SQLitePCL;
- using StackExchange.Redis;
- using System.Net.Security;
- using System.Security.Cryptography.X509Certificates;
- //raw.SetProvider(new SQLite3Provider_e_sqlite3());
- //RedisConfig.CertificateValidationCallback = (
- // object sender,
- // X509Certificate? certificate,
- // X509Chain? chain,
- // SslPolicyErrors sslPolicyErrors)
- // => { return true; };
- var builder = Host.CreateDefaultBuilder(args)
- .ConfigureLogging((context, loggingBuilder) => {
- loggingBuilder.ClearProviders();
- NLog.LogManager.Configuration = new NLogLoggingConfiguration(context.Configuration.GetSection("NLog"));
- })
- .UseNLog()
- .ConfigureWebHostDefaults(webBuilder =>
- {
- webBuilder.UseStartup<Startup>();
- webBuilder.ConfigureKestrel(serverOptions =>
- {
- serverOptions.Limits.MaxRequestBodySize = null;
- });
- })
- .ConfigureServices((context, services) => {
- var azureRedisHost = context.Configuration["AZURE_REDIS_HOST"];
- var azureRedisPwd = context.Configuration["AZURE_REDIS_PASSWORD"];
- var azureRedisPort = context.Configuration["AZURE_REDIS_PORT"];
- var azureRedisIsSSL = context.Configuration["AZURE_REDIS_SSL"];
- var azureRedisDb = context.Configuration["AZURE_REDIS_DATABASE"];
- //var connString = $"redis://{azureRedisHost}:{azureRedisPort}?ssl={azureRedisIsSSL}&sslprotocols=Tls12&password={azureRedisPwd.UrlEncode()}&defaultDatabase={azureRedisDb}";
- //var connString = $"{azureRedisHost}:{azureRedisPort}?ssl=true&password={azureRedisPwd}&db={azureRedisDb}";
- //var connString = $"wSy0KUhPB7GAH1k28X6JzZ4102Ia679PFAzCaBbPc2I=@devtest-backend-redis.redis.cache.windows.net:6380";
- //services.AddSingleton<IRedisClientsManager>(new PooledRedisClientManager(connString));
- azureRedisHost = "devtest-backend-redis.redis.cache.windows.net";
- azureRedisPwd = "SV213drVDPL7Vay7wBEXthU2expkuf2LlAzCaB64PQg=";
- azureRedisPort = "6380";
- azureRedisIsSSL = "true";
- azureRedisDb = "0";
- var connConfig = new ConfigurationOptions()
- {
- EndPoints = { { azureRedisHost , int.Parse(azureRedisPort) } },
- Password = azureRedisPwd,
- Ssl = true,
- DefaultDatabase = int.Parse(azureRedisDb)
- };
- connConfig.CertificateValidation += (object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslPolicyErrors) => { return true; };
- services.AddSingleton<IDatabase>((service) => {
- var conn = ConnectionMultiplexer.Connect(connConfig);
- return conn.GetDatabase();
- });
- services.AddSingleton<IServer>((service) => {
- var conn = ConnectionMultiplexer.Connect(connConfig);
- return conn.GetServer(connConfig.EndPoints.First());
- });
- services.AddJobs();
- services.AddMainDbContext(context.Configuration);
- services.AddTransient<IMainDbService, MainDbService>();
- services.AddTransient<IServerMessageService, MemDbServerMessageService>();
- //services.AddTransient<IServerMessageService, RedisServerMessageService>();
- services.AddMemDbService();
- });
- var app = builder.Build();
- await app.RunAsync();
|