public async Task CreateGameServer(GameServerDto gameServerDto)
        {
            if (gameServerDto == null)
            {
                throw new ArgumentNullException(nameof(gameServerDto));
            }

            var gameServer = new GameServers
            {
                ServerId                 = Guid.NewGuid(),
                Title                    = gameServerDto.Title,
                GameType                 = gameServerDto.GameType,
                Hostname                 = gameServerDto.Hostname,
                QueryPort                = gameServerDto.QueryPort,
                FtpHostname              = gameServerDto.FtpHostname,
                FtpUsername              = gameServerDto.FtpUsername,
                FtpPassword              = gameServerDto.FtpPassword,
                RconPassword             = gameServerDto.RconPassword,
                ShowOnBannerServerList   = gameServerDto.ShowOnBannerServerList,
                BannerServerListPosition = gameServerDto.BannerServerListPosition,
                HtmlBanner               = gameServerDto.HtmlBanner,
                ShowOnPortalServerList   = gameServerDto.ShowOnPortalServerList,
                ShowChatLog              = gameServerDto.ShowChatLog,
#pragma warning disable 618 // Required to prevent SQL error
                LiveLastUpdated = DateTime.UtcNow
#pragma warning restore 618
            };

            _legacyContext.GameServers.Add(gameServer);
            await _legacyContext.SaveChangesAsync();
        }
        public async Task UpdateGameServer(GameServerDto gameServerDto)
        {
            if (gameServerDto == null)
            {
                throw new ArgumentNullException(nameof(gameServerDto));
            }

            var gameServer = await _legacyContext.GameServers.SingleOrDefaultAsync(s => s.ServerId == gameServerDto.ServerId);

            if (gameServer == null)
            {
                throw new NullReferenceException(nameof(gameServer));
            }

            gameServer.Title                    = gameServerDto.Title;
            gameServer.Hostname                 = gameServerDto.Hostname;
            gameServer.QueryPort                = gameServerDto.QueryPort;
            gameServer.FtpHostname              = gameServerDto.FtpHostname;
            gameServer.FtpUsername              = gameServerDto.FtpUsername;
            gameServer.FtpPassword              = gameServerDto.FtpPassword;
            gameServer.RconPassword             = gameServerDto.RconPassword;
            gameServer.ShowOnBannerServerList   = gameServerDto.ShowOnBannerServerList;
            gameServer.BannerServerListPosition = gameServerDto.BannerServerListPosition;
            gameServer.HtmlBanner               = gameServerDto.HtmlBanner;
            gameServer.ShowOnPortalServerList   = gameServerDto.ShowOnPortalServerList;
            gameServer.ShowChatLog              = gameServerDto.ShowChatLog;

            await _legacyContext.SaveChangesAsync();
        }
        public async Task <IActionResult> Edit(GameServerDto model)
        {
            var gameServerDto = await _gameServersRepository.GetGameServer(model.ServerId);

            if (gameServerDto == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                AddGameTypeViewData(model.GameType);
                return(View(model));
            }

            var canEditGameServer = await _authorizationService.AuthorizeAsync(User, gameServerDto, AuthPolicies.EditGameServer);

            if (!canEditGameServer.Succeeded)
            {
                return(Unauthorized());
            }

            gameServerDto.Title     = model.Title;
            gameServerDto.Hostname  = model.Hostname;
            gameServerDto.QueryPort = model.QueryPort;

            var canEditGameServerFtp = await _authorizationService.AuthorizeAsync(User, gameServerDto, AuthPolicies.EditGameServerFtp);

            if (canEditGameServerFtp.Succeeded)
            {
                gameServerDto.FtpHostname = model.FtpHostname;
                gameServerDto.FtpUsername = model.FtpUsername;
                gameServerDto.FtpPassword = model.FtpPassword;
            }

            var canEditGameServerRcon = await _authorizationService.AuthorizeAsync(User, gameServerDto, AuthPolicies.EditGameServerRcon);

            if (canEditGameServerRcon.Succeeded)
            {
                gameServerDto.RconPassword = model.RconPassword;
            }

            gameServerDto.ShowOnBannerServerList   = model.ShowOnBannerServerList;
            gameServerDto.BannerServerListPosition = model.BannerServerListPosition;
            gameServerDto.HtmlBanner             = model.HtmlBanner;
            gameServerDto.ShowOnPortalServerList = model.ShowOnPortalServerList;
            gameServerDto.ShowChatLog            = model.ShowChatLog;

            await _gameServersRepository.UpdateGameServer(gameServerDto);

            _logger.LogInformation(EventIds.Management, "User {User} has updated {GameServerId} under {GameType}", User.Username(), gameServerDto.ServerId, gameServerDto.GameType);
            this.AddAlertSuccess($"The game server {gameServerDto.Title} has been updated for {gameServerDto.GameType}");

            return(RedirectToAction(nameof(Index)));
        }
예제 #4
0
        public static GameServerDto ToDto(this GameServers gameServer)
        {
            var gameServerDto = new GameServerDto
            {
                ServerId                 = gameServer.ServerId,
                Title                    = gameServer.Title,
                GameType                 = gameServer.GameType,
                Hostname                 = gameServer.Hostname,
                QueryPort                = gameServer.QueryPort,
                FtpHostname              = gameServer.FtpHostname,
                FtpUsername              = gameServer.FtpUsername,
                FtpPassword              = gameServer.FtpPassword,
                RconPassword             = gameServer.RconPassword,
                ShowOnBannerServerList   = gameServer.ShowOnBannerServerList,
                BannerServerListPosition = gameServer.BannerServerListPosition,
                HtmlBanner               = gameServer.HtmlBanner,
                ShowOnPortalServerList   = gameServer.ShowOnPortalServerList,
                ShowChatLog              = gameServer.ShowChatLog
            };


            return(gameServerDto);
        }
        public static FileMonitorDto WithServerDto(this FileMonitorDto fileMonitorDto, GameServerDto gameServerDto)
        {
            fileMonitorDto.GameServer = gameServerDto;
            fileMonitorDto.ServerId   = gameServerDto.ServerId;

            return(fileMonitorDto);
        }
 public static GameServerDto ForGameType(this GameServerDto gameServerDto, GameType gameType)
 {
     gameServerDto.GameType = gameType;
     return(gameServerDto);
 }
        public static BanFileMonitorDto WithServerDto(this BanFileMonitorDto banFileMonitorDto, GameServerDto gameServerDto)
        {
            banFileMonitorDto.GameServer = gameServerDto;
            banFileMonitorDto.ServerId   = gameServerDto.ServerId;

            return(banFileMonitorDto);
        }