/// <summary> /// Creating gameBattleField for the player /// </summary> /// <param name="ownerId"></param> /// <param name="battleFieldId"></param> /// <returns></returns> public BattleFieldResult CreateGameBattleField(int ownerId, int battleFieldId) { var owner = _userRepository.GetById(ownerId); var result = new BattleFieldResult(); if (owner == null) { result.IsError = true; result.ErrorMessage = "There is no user with such Id"; return(result); } var battleField = _battleFieldRepository.GetById(battleFieldId); if (battleField == null) { result.IsError = true; result.ErrorMessage = "There is no battlefield with such Id"; return(result); } var gameBattleField = new GameBattleField(battleField); gameBattleField.Owner = owner; _gameBattleFieldRepository.Add(gameBattleField); _gameBattleFieldRepository.Save(); result.IsWaiting = true; result.GameBattleFieldId = gameBattleField.Id; return(result); }
/// <summary> /// Waiting for other player to start the game /// </summary> /// <param name="gameBattleFieldId"></param> /// <returns></returns> public BattleFieldResult WaitingForPlayer(int gameBattleFieldId) { var result = new BattleFieldResult(); var userGameBattleField = _gameBattleFieldRepository.GetById(gameBattleFieldId); if (userGameBattleField == null) { result.IsError = true; result.ErrorMessage = "There is no gameBattlefield with such Id"; result.GameBattleFieldId = gameBattleFieldId; return(result); } if (!userGameBattleField.IsWaiting) { result.GameBattleFieldId = userGameBattleField.Id; result.GameId = userGameBattleField.GameId; return(result); } var gameBattleField = _gameBattleFieldRepository.GetAll(). FirstOrDefault(gb => gb.IsWaiting && gb.Id != gameBattleFieldId); if (gameBattleField == null) { result.IsWaiting = true; result.GameBattleFieldId = gameBattleFieldId; return(result); } var gameBattleFields = new List <GameBattleField>() { userGameBattleField, gameBattleField }; result.GameId = CreateGame(gameBattleFields); return(result); }