Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Threading;
- using System.Threading.Tasks;
- using FluentScheduler ;
- using Grpc.Core;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection ;
- using Microsoft.Extensions.DependencyInjection.Extensions;
- using Microsoft.Extensions.Logging ;
- using Microsoft.Extensions.Options;
- using NLog ;
- using NLog.Extensions.Logging ;
- using SimpleInjector;
- using Socialforce.Common;
- using Socialforce.Service.Core ;
- using Socialforce.Service.Data;
- using Socialforce.Service.Jobs ;
- using SocialforceService;
- using ILogger = Microsoft.Extensions.Logging.ILogger ;
- namespace Socialforce.Service
- {
- public class Program
- {
- private static Logger Logger = LogManager.GetCurrentClassLogger ();
- private static ManualResetEvent resetEvent = new ManualResetEvent(false);
- const int Port = 50051;
- private static Container _container;
- static void Main(string[] args)
- {
- var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
- var services = new ServiceCollection ();
- services.AddLogging ();
- var provider = services.BuildServiceProvider ();
- var factory = provider.GetService<ILoggerFactory> ();
- factory.AddNLog ();
- factory.ConfigureNLog ("nlog.config");
- //var logger = provider.GetService<ILogger<Program>> ();
- //logger.LogCritical ("hello nlog");
- Logger.Debug("Test: " + Directory.GetCurrentDirectory());
- var builder = new ConfigurationBuilder()
- .SetBasePath(Directory.GetCurrentDirectory())
- .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
- .AddJsonFile($"appsettings.{environmentName}.json", optional: true);
- IConfigurationRoot configuration = builder.Build();
- //services.Configure<DigitalOceanSpacesConfig>();
- Logger.Debug("Test: "+ configuration.GetConnectionString("DefaultConnection"));
- var dbContextBuilder = new DbContextOptionsBuilder();
- dbContextBuilder.UseNpgsql(configuration.GetConnectionString("DefaultConnection"));
- _container = new Container
- {
- Options =
- {
- SuppressLifestyleMismatchVerification = true
- }
- };
- IocContainer.Instance.Container = _container ;
- _container.Register<SocialforceServiceImpl>();
- _container.RegisterSingleton<ISessionStorage, SessionStorage>();
- _container.RegisterSingleton<IRequestLogger, RequestLogger>();
- _container.RegisterSingleton (()=>new DbContextFactory(dbContextBuilder.Options));
- _container.RegisterSingleton<AccountActivityLogger> ();
- _container.RegisterSingleton<SocialClientFactory>();
- _container.RegisterSingleton<AccountManager>();
- _container.Register<DigitaloceanSpacesService>(() =>
- {
- var doConfig = new DigitalOceanSpacesConfig
- {
- Bucket = configuration["DigitalOceanSpaces:Bucket"],
- ServiceUrl = configuration["DigitalOceanSpaces:ServiceUrl"],
- Secret = configuration["DigitalOceanSpaces:Secret"],
- Key = configuration["DigitalOceanSpaces:Key"],
- };
- return new DigitaloceanSpacesService(doConfig);
- });
- Server server = new Server
- {
- Services = { SocialforceService.SocialforceService.BindService(_container.GetInstance<SocialforceServiceImpl>()) },
- Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) }
- };
- server.Start();
- JobManager.Initialize (new UnitRegistry());
- Logger.Debug ($"Started, port: {Port}, env:{environmentName}");
- resetEvent.WaitOne();
- Logger.Debug("Shutting down");
- server.ShutdownAsync().Wait();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement