/// <summary> /// Back to general chat /// </summary> /// <param name="user"></param> /// <param name="opponent"></param> public void BackToChat(string user, string opponent) { if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(opponent)) { try { GameMng.DeleteGame(user, opponent); GameMng.DeleteHowToFirst(user, opponent); if (_callback.ContainsKey(user)) { _callback[user].BackToChatFromServer(user, opponent); } if (_callback.ContainsKey(opponent)) { _callback[opponent].BackToChatFromServer(opponent, user); } } catch (Exception ex) { _callback[user].RecieveError(ex.Message); _callback[opponent].RecieveError(ex.Message); } } }
public void RollHowFirstComp(string user, string computer) { if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(computer)) { var callback = OperationContext.Current.GetCallbackChannel <IClientCallback>(); var arrayResult = GameMng.RollHowFirst(user, computer); var number1 = int.Parse(arrayResult[0]); var number2 = int.Parse(arrayResult[1]); int[] resultToSend = new int[2]; resultToSend[0] = (number1 == 0) ? 1 : number1; resultToSend[1] = (number2 == 0) ? 1 : number2; //Send to User result of first roll _callback[user].RecieveRollHowFirst(user, computer, resultToSend); //Computer rolling arrayResult = GameMng.RollHowFirst(computer, user); number1 = int.Parse(arrayResult[0]); number2 = int.Parse(arrayResult[1]); resultToSend = new int[2]; resultToSend[0] = (number1 == 0) ? 1 : number1; resultToSend[1] = (number2 == 0) ? 1 : number2; //Send to User result of second roll _callback[user].RecieveRollHowFirst(user, computer, resultToSend); if (arrayResult[2] != string.Empty) { var winnerName = arrayResult[2]; if (winnerName == user) { _callback[user].CloseHowToFirstFromServer(user, computer, true); GameMng.DeleteHowToFirst(user, computer); GameMng.AddGame(user, computer); } else { _callback[user].CloseHowToFirstFromServer(user, computer, false); GameMng.DeleteHowToFirst(user, computer); GameMng.AddGame(computer, user); //MoveCheckerAuto(computer, user); } } else { if (number1 == number2) { _callback[user].GameInfoUpdateFromServer(computer, "The numbers are equals. Try again"); } } } }
public void UserLeftGame(string userName, string opponentName) { if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(opponentName)) { var callback = OperationContext.Current.GetCallbackChannel <IClientCallback>(); try { BackToChat(opponentName, userName); GameMng.DeleteHowToFirst(userName, opponentName); GameMng.DeleteGame(userName, opponentName); } catch (Exception ex) { callback.RecieveError(ex.Message); } } }
public void RollHowFirst(string user, string opponent) { if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(opponent)) { var callback = OperationContext.Current.GetCallbackChannel <IClientCallback>(); try { //lock (padlock) //{ if (_callback.ContainsKey(user) && _callback.ContainsKey(opponent)) { var arrayResult = GameMng.RollHowFirst(user, opponent); var number1 = int.Parse(arrayResult[0]); var number2 = int.Parse(arrayResult[1]); int[] resultToSend = new int[2]; resultToSend[0] = (number1 == 0) ? 1 : number1; resultToSend[1] = (number2 == 0) ? 1 : number2; _callback[user].RecieveRollHowFirst(user, opponent, resultToSend); _callback[opponent].RecieveRollHowFirst(opponent, user, resultToSend); if (arrayResult[2] != string.Empty) { var winnerName = arrayResult[2]; if (winnerName == user) { _callback[user].CloseHowToFirstFromServer(user, opponent, true); _callback[opponent].CloseHowToFirstFromServer(opponent, user, false); GameMng.DeleteHowToFirst(user, opponent); } else { _callback[opponent].CloseHowToFirstFromServer(opponent, user, true); _callback[user].CloseHowToFirstFromServer(user, opponent, false); GameMng.DeleteHowToFirst(user, opponent); } } else { if (number1 == number2) { _callback[user].GameInfoUpdateFromServer(opponent, "The numbers are equals. Try again"); _callback[opponent].GameInfoUpdateFromServer(user, "The numbers are equals. Try again"); } } } else if (_callback.ContainsKey(user) && opponent == "autoPlayer") { RollHowFirstComp(user, opponent); } //} } catch (Exception ex) { if (_callback.ContainsKey(user)) { callback.RecieveError(ex.Message); } if (_callback.ContainsKey(opponent)) { _callback[opponent].RecieveError(ex.Message); } } } }