コード例 #1
0
        public void GetSteamCmdDirectory()
        {
            GhostPanelConfig config = FakeConfig.GetFakeConfig();
            var provider            = new DefaultDirectoryProvider(config);

            Assert.Equal("C:\\SteamCmd", provider.GetSteamCmdDirectory());
        }
コード例 #2
0
        public void GetBaseInstallDirectory()
        {
            GhostPanelConfig config = FakeConfig.GetFakeConfig();
            var provider            = new DefaultDirectoryProvider(config);

            Assert.Equal("C:\\Game Servers", provider.GetBaseInstallDirectory());
        }
コード例 #3
0
        public void GetGameFileDirectory()
        {
            GhostPanelConfig config = FakeConfig.GetFakeConfig();
            var provider            = new DefaultDirectoryProvider(config);

            Assert.Equal("C:\\Server Files", provider.GetGameFileDirectory());
        }
コード例 #4
0
        public void GetCorrectCredentailStringForAnonymous()
        {
            GhostPanelConfig config = FakeConfig.GetFakeConfig();
            var credProvider        = new SteamCredentialProvider(config);

            Assert.Equal("anonymous", credProvider.GetCredentialString());
        }
コード例 #5
0
        public void GetCorrectCredentailStringForUserAndPass()
        {
            GhostPanelConfig config = FakeConfig.GetFakeConfig();

            config.SteamSettings.Password = "******";
            config.SteamSettings.Username = "******";
            var credProvider = new SteamCredentialProvider(config);

            Assert.Equal("TestUser Password123", credProvider.GetCredentialString());
        }
コード例 #6
0
 // TODO: Refactor to be smarter about searching for values instead of a method for each
 // TODO: Make config and interface
 public DefaultDirectoryProvider(GhostPanelConfig config)
 {
     _config = config;
 }
コード例 #7
0
 public SteamCredentialProvider(GhostPanelConfig config)
 {
     _config = config;
 }
コード例 #8
0
ファイル: Startup.cs プロジェクト: barrycarey/ghostpanel
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <AppDataContext>(ServiceLifetime.Transient);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddJsonOptions(options => {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            });
            services.AddCors();

            services.AddMediatR(typeof(CreateServerCommandHandler).GetTypeInfo().Assembly);
            services.AddMediatR(typeof(QueryServerCommandHandler).GetTypeInfo().Assembly);

            GhostPanelConfig fullConfig = Configuration.Get <GhostPanelConfig>();


            services.AddHangfire(x => x.UseSqlServerStorage(fullConfig.HangFireDatabaseConnectionString));

            var builder = new ContainerBuilder();

            builder.Populate(services);

            builder.RegisterGeneric(typeof(Logger <>)).As(typeof(ILogger <>));



            builder.RegisterInstance(fullConfig).AsSelf().SingleInstance();
            IRepository repository = SetUpDatabase.SetUpRepository(fullConfig.DatabaseConnectionString);

            builder.RegisterType <SteamCredentialProvider>().As <ISteamCredentialProvider>().SingleInstance();
            builder.RegisterType <DefaultDirectoryProvider>().As <IDefaultDirectoryProvider>().SingleInstance();
            builder.RegisterType <PortAndIpProvider>().As <IPortAndIpProvider>().SingleInstance();


            // Game File Managers
            builder.RegisterType <LocalGameFileManager>().As <IGameFileManager>();
            builder.RegisterType <SteamCmdGameFiles>().As <IGameFileManager>();
            builder.RegisterType <GameFileManagerProvider>().As <IGameFileManagerProvider>().SingleInstance();

            builder.RegisterInstance(repository).SingleInstance();

            builder.RegisterType <PanelBackgroundTaskService>().As <IBackgroundService>().SingleInstance();


            builder.RegisterType <BackgroundManager>().AsSelf().SingleInstance();
            builder.RegisterType <ServerProcessManagerWin>().As <IServerProcessManager>().SingleInstance();
            builder.RegisterType <ServerProcessManagerProvider>().As <IServerProcessManagerProvider>().SingleInstance();

            builder.RegisterType <GameServerProvider>().As <IGameServerProvider>().SingleInstance();
            builder.RegisterType <GameQueryFactory>().As <IGameQueryFactory>().SingleInstance();
            builder.RegisterType <ServerStatService>().As <IServerStatService>().SingleInstance();
            builder.RegisterType <ServerStatsRefresh>().As <IHostedService>();
            builder.RegisterType <ScheduledTaskService>().As <IScheduledTaskService>().SingleInstance();
            builder.RegisterType <ScheduledTaskWorker>().As <IHostedService>();


            builder.RegisterType <PanelBackgroundWorker>().As <IHostedService>();


            builder.RegisterType <CommandlineProcessor>().As <ICommandlineProcessor>().SingleInstance();
            builder.RegisterType <GameServerManagerRefac>().As <IGameServerManager>().SingleInstance();

            // Before started actions
            builder.RegisterType <ProcessConfigFilesBeforeStarted>().As <IBeforeStartedAction>();

            builder.RegisterModule(new MediatorModule());

            ApplicationContainer = builder.Build();

            return(new AutofacServiceProvider(ApplicationContainer));
        }