public void DisableNewGame(string clientVersion, string login, bool disable) { try { if (string.IsNullOrWhiteSpace(login)) { throw new Exception("Доступ запрещён"); } #if !DEBUG //проверка версии клиента if (!string.IsNullOrEmpty(_UpdaterService.ClientVersion) && clientVersion != _UpdaterService.ClientVersion) { throw new Exception($"Неверная версия клиента: login={login}."); } #endif using (GamePortalEntities gamePortal = new GamePortalEntities()) { User gpUser = gamePortal.Users.FirstOrDefault(p => p.Login == login); if (gpUser == null || !gpUser.Titles.Any(p => p.Name == "dynamic_title1*titleType_Создатель")) { throw new Exception("Доступ запрещён id" + gpUser?.Login); } } IsDisableNewGame = disable; } catch (Exception exp) { GameException.NewGameException(null, "Service.DisableNewGame", exp, false); } }
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Exception exp = e.ExceptionObject as Exception ?? new Exception(e.ExceptionObject.ToString()); GameException.NewGameException(null, "Неизвестная ошибка.", exp, false); File.WriteAllText("Exception.txt", exp.ToString()); this.Dispose(); }
public WCFGame NewGame(string clientVersion, WCFGameSettings gameSettings, string gamePassword) { try { if (IsDisableNewGame || gameSettings == null || !gameSettings.CheckInput()) { return(null); } #if !DEBUG //проверка версии клиента if (!string.IsNullOrEmpty(_UpdaterService.ClientVersion) && clientVersion != _UpdaterService.ClientVersion) { throw new Exception($"Неверная версия клиента: login={gameSettings.CreatorLogin}."); } #endif WCFUser gpUser = _GamePortalService.GetProfileByLogin(gameSettings.CreatorLogin); //TODO проверка может ли пользователь поставить такие условия /*if (gpUser == null || gpUser.MindRate < gameSettings.RateSettings.MindRate || gpUser.HonorRate < gameSettings.RateSettings.HonorRate || gpUser.LikeRate < gameSettings.RateSettings.LikeRate || gpUser.DurationHours < gameSettings.RateSettings.DurationRate) || return Guid.Empty;*/ #if !DEBUG //запрет на много игр using (Agot2p6Entities dbContext = new Agot2p6Entities()) { if (dbContext.Game.Count(p => p.CloseTime == null && (p.CreatorLogin == gameSettings.CreatorLogin || p.GameUser.Any(p1 => !string.IsNullOrEmpty(p1.HomeType) && p1.Login == gameSettings.CreatorLogin))) > 0) { return(null); } } #endif WCFGame wcfGame = CreateGame(gameSettings, gamePassword); if (wcfGame == null) { return(null); } //поднимаем хост и сообщаем о новой игре NewHost(wcfGame.Id); _NotifyService.AddGameNotifi(wcfGame); return(wcfGame); } catch (Exception exp) { GameException.NewGameException(null, "Не удалось создать игру.", exp, false); return(null); } }
private void ChangeGameWhenLinkAccounts(string user, string linkUser) { try { using (Agot2p6Entities dbContext = new Agot2p6Entities()) { dbContext.Game.Where(p => p.CreatorLogin == linkUser).ToList().ForEach(p => p.CreatorLogin = user); dbContext.GameUser.Where(p => p.Login == linkUser).ToList().ForEach(p => p.Login = user); dbContext.SaveChanges(); } } catch (Exception exp) { GameException.NewGameException(null, $"func=ChangeGameWhenLinkAccounts, user={user}, linkUser={linkUser}.", exp, false); } }
public void UpdateGamePoint(string clientVersion, string login, WCFGamePoint newPoint) { try { if (string.IsNullOrWhiteSpace(login) || newPoint == null) { throw new Exception("Некоректные данные"); } #if !DEBUG //проверка версии клиента if (!string.IsNullOrEmpty(_UpdaterService.ClientVersion) && clientVersion != _UpdaterService.ClientVersion) { throw new Exception($"Неверная версия клиента: login={login}."); } #endif using (GamePortalEntities gamePortal = new GamePortalEntities()) { User gpUser = gamePortal.Users.FirstOrDefault(p => p.Login == login); if (gpUser == null || !gpUser.Titles.Any(p => p.Name == "dynamic_title1*titleType_Создатель")) { throw new Exception("Доступ запрещён id" + gpUser?.Login); } } using (Agot2p6Entities dbContext = new Agot2p6Entities()) { GamePoint curPoint = dbContext.GamePoint.FirstOrDefault(p => p.Id == newPoint.Id); if (curPoint == null) { throw new Exception("Неизвестная точка"); } curPoint.X = newPoint.X; curPoint.Y = newPoint.Y; dbContext.SaveChanges(); } } catch (Exception exp) { GameException.NewGameException(null, "Не удалось изменить точку:", exp, false); } }
public WCFService GetGame(string clientVersion, string login) { try { if (string.IsNullOrWhiteSpace(login)) { return(null); } #if !DEBUG //проверка версии клиента if (!string.IsNullOrEmpty(_UpdaterService.ClientVersion) && clientVersion != _UpdaterService.ClientVersion) { return(null); } #endif _GamePortalService.AddOnlineUser(login); WCFService result = new WCFService() { IsDisableNewGame = IsDisableNewGame }; using (Agot2p6Entities dbContext = new Agot2p6Entities()) { #if DEBUG IEnumerable <Game> games = dbContext.Game.ToList().Where(p => GameHost.GameTypes.All(p1 => p.Id != p1.GameId)); #endif #if !DEBUG IQueryable <Game> games = dbContext.Game.Where(p => p.CreatorLogin != "System"); #endif result.Games = games.ToList().Select(p => p.ToWCFGame()).ToList(); } return(result); } catch (Exception exp) { GameException.NewGameException(null, "Не удалось подготовить список игр.", exp, false); return(null); } }