/// <summary> /// Initializes a new instance of the <see cref="AdminPanel" /> class. /// </summary> /// <param name="port">The port.</param> /// <param name="servers">All manageable servers, including game servers, connect servers etc.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="changeListener">The change listener.</param> /// <param name="loggingConfigurationPath">The logging configuration file path.</param> public AdminPanel(ushort port, IList <IManageableServer> servers, IPersistenceContextProvider persistenceContextProvider, IServerConfigurationChangeListener changeListener, string loggingConfigurationPath) { // you might need to allow it first with netsh: // netsh http add urlacl http://+:1234/ user=[Username] var host = WebHost.CreateDefaultBuilder() .ConfigureLogging(configureLogging => { configureLogging.ClearProviders(); var settings = new Log4NetSettings { ConfigFile = loggingConfigurationPath, Watch = true }; configureLogging.AddLog4Net(settings); }) .ConfigureServices(serviceCollection => { serviceCollection.AddSingleton(servers); serviceCollection.AddSingleton(persistenceContextProvider); serviceCollection.AddSingleton(changeListener); }) .UseKestrel(options => { // Default port options.ListenAnyIP(port); }) .UseStartup <Startup>() .Build(); host.Start(); SignalRGameServerStateObserver.Services = host.Services; SignalRMapStateObserver.Services = host.Services; }
/// <summary> /// Initializes a new instance of the <see cref="AdminPanel" /> class. /// </summary> /// <param name="servers">All manageable servers, including game servers, connect servers etc.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="changeListener">The change listener.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="settings">The admin panel settings.</param> /// <param name="plugInChangeListener">The plug in change listener.</param> public AdminPanel(IList <IManageableServer> servers, IPersistenceContextProvider persistenceContextProvider, IServerConfigurationChangeListener changeListener, ILoggerFactory loggerFactory, AdminPanelSettings settings, IPlugInConfigurationChangeListener plugInChangeListener) { this.servers = servers; this.persistenceContextProvider = persistenceContextProvider; this.changeListener = changeListener; this.loggerFactory = loggerFactory; this.settings = settings; this.plugInChangeListener = plugInChangeListener; this.logger = this.loggerFactory.CreateLogger <AdminPanel>(); }
/// <summary> /// Initializes a new instance of the <see cref="ConnectServerService"/> class. /// </summary> /// <param name="servers">The servers.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="changeListener">The change listener.</param> public ConnectServerService(IList <IManageableServer> servers, IPersistenceContextProvider persistenceContextProvider, IServerConfigurationChangeListener changeListener) { this.servers = servers; this.persistenceContextProvider = persistenceContextProvider; this.changeListener = changeListener; }
/// <summary> /// Initializes a new instance of the <see cref="AdminPanel" /> class. /// </summary> /// <param name="port">The port.</param> /// <param name="servers">All manageable servers, including game servers, connect servers etc.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="changeListener">The change listener.</param> /// <param name="loggingConfigurationPath">The logging configuration file path.</param> public AdminPanel(ushort port, IList <IManageableServer> servers, IPersistenceContextProvider persistenceContextProvider, IServerConfigurationChangeListener changeListener, string loggingConfigurationPath) { Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithMinimalPooling(); // you might need to allow it first with netsh: // netsh http add urlacl http://+:1234/ user=[Username] var host = Host.CreateDefaultBuilder() .ConfigureLogging(configureLogging => { configureLogging.ClearProviders(); var settings = new Log4NetSettings { ConfigFile = loggingConfigurationPath, Watch = true }; configureLogging.AddLog4Net(settings); }) .ConfigureServices(serviceCollection => { serviceCollection.AddSingleton(servers); serviceCollection.AddSingleton(persistenceContextProvider); serviceCollection.AddSingleton(changeListener); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); webBuilder.UseStaticWebAssets(); // For testing purposes, we use http. Later we need to switch to https. // The self-signed certificate would otherwise cause a lot of warnings in the browser. webBuilder.UseUrls($"http://*:{port}"); }) .Build(); host.Start(); }
/// <summary> /// Initializes a new instance of the <see cref="ConnectServerController" /> class. /// </summary> /// <param name="servers">The servers.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="serverListHubContext">The server list hub context.</param> /// <param name="changeListener">The change listener.</param> public ConnectServerController(IList <IManageableServer> servers, IPersistenceContextProvider persistenceContextProvider, IHubContext <ServerListHub> serverListHubContext, IServerConfigurationChangeListener changeListener) { this.servers = servers; this.persistenceContextProvider = persistenceContextProvider; this.serverListHubContext = serverListHubContext; this.changeListener = changeListener; }