public static IApplicationBuilder StartNode(string[] args, KillRecpientType type) { //Assemblys.WireUp(); return(ActorApplication.Create(args) .ConfigureAutoFac(cb => { cb.RegisterType <ConsoleAppRoute>().Named <IAppRoute>("default"); cb.RegisterType <KillHelper>().As <IStartUpAction>(); }) .ConfigurateNode() .ConfigureLogging((context, configuration) => { Console.Title = context.HostEnvironment.ApplicationName; configuration.WriteTo.ColoredConsole(); }) .ConfigurateAkkaSystem((context, system) => { if (type == KillRecpientType.Seed) { KillSwitch.Setup(system); } else { KillSwitch.Subscribe(system, type); } })); }
public static async Task Main(string[] args) { SyncfusionLicenseProvider.RegisterLicense("MjY0ODk0QDMxMzgyZTMxMmUzMEx6Vkt0M1ZIRFVPRWFqMEcwbWVrK3dqUldkYzZiaXA3TGFlWDFORDFNSms9"); switch (IpConfigurationChecker.CheckConfiguration()) { case null: Environment.ExitCode = -1; return; case true: await ActorApplication.Create(args) .ConfigurateNode() .ConfigureLogging((context, configuration) => configuration.WriteTo.Sink <SeriLogViewerSink>()) .ConfigurateAkkaSystem((context, system) => system.RegisterLocalization()) .ConfigurateAkkaSystem((context, system) => KillSwitch.Subscribe(system, KillRecpientType.Frontend)) .ConfigurateAkkaSystem( (context, system) => Cluster.Get(system) .RegisterOnMemberUp( () => ServiceRegistry.GetRegistry(system).RegisterService(new RegisterService(context.HostEnvironment.ApplicationName, Cluster.Get(system).SelfUniqueAddress)))) .ConfigureAutoFac(cb => cb.RegisterModule <CoreModule>()) .UseWpf <MainWindow>(configuration => configuration.WithAppFactory(() => new App())) .Build().Run(); break; case false: Process.Start(System.Windows.Forms.Application.ExecutablePath.Replace(".dll", ".exe"), Environment.CommandLine); break; } }
public static IHostBuilder StartNode(this IHostBuilder builder, KillRecpientType type, IpcApplicationType ipcType, Action <IActorApplicationBuilder>?build = null, bool consoleLog = false) { var masterReady = false; if (ipcType != IpcApplicationType.NoIpc) { masterReady = SharmComunicator.MasterIpcReady(IpcName); } var ipc = new IpcConnection(masterReady, ipcType, (s, exception) => LogManager.GetCurrentClassLogger().Error(exception, "Ipc Error: {Info}", s)); return(builder.ConfigureLogging((context, configuration) => { System.Console.Title = context.HostingEnvironment.ApplicationName; if (consoleLog) { configuration.AddConsole(); } }) .ConfigurateNode(ab => { ab.ConfigureAutoFac(cb => { cb.RegisterType <NodeAppService>().As <IHostedService>(); cb.RegisterType <KillHelper>().As <IStartUpAction>(); cb.RegisterInstance(ipc).As <IIpcConnection>(); }) .ConfigureAkkaSystem((_, system) => { switch (type) { case KillRecpientType.Seed: KillSwitch.Setup(system); break; default: KillSwitch.Subscribe(system, type); break; } }); build?.Invoke(ab); })); }