public static DataSet ModifyChallenge(ColorE colorIDE, GameType gameTypeIDE, int challengeID, int roomID, int chessTypeID, bool IsRated, bool WithClock, bool ChallengerSendsGame, int opponentUserID, int timeMin, int gainPerMove)
        {
            ChallengeDataKv kv = new ChallengeDataKv();

            kv.Kv.Set("MethodName", (int)MethodNameE.ModifyChallenge);
            kv.Kv.Set(StdKv.CurrentUserID, Ap.CurrentUserID);
            kv.ChallengeID           = challengeID;
            kv.ChallengerUserID      = Ap.CurrentUserID;
            kv.ChallengeTypeIDE      = ChallengeTypeE.Modify;
            kv.ChessTypeID           = chessTypeID;
            kv.ColorIDE              = colorIDE;
            kv.IsRated               = IsRated;
            kv.WithClock             = WithClock;
            kv.IsChallengerSendsGame = ChallengerSendsGame;
            kv.Description           = "";
            kv.OpponentUserID        = opponentUserID;
            kv.GameTypeIDE           = gameTypeIDE;
            kv.StatusIDE             = StatusE.Active;
            kv.TimeMin               = timeMin;
            kv.GainPerMoveMin        = gainPerMove;
            kv.RoomID = roomID;
            //kv.ChessTypeID = PlayingMode.ChessTypeID;
            DataSet ds = SocketClient.Instance.Invoke(kv.Kv.DataTable.Copy());

            return(ds);
        }
        public static DataSet AddChallengeData
        (
            int WhiteUserID
            , int blackUserID
            , ChallengeTypeE challengeTypeE
            , GameType gameTypeIDE
            , ColorE colorIDE
            , int roomID
            , int timeMin
            , int gainPerMove
            , int chessTypeID
            , bool isRated
            , bool withClock
            , bool challengerSendsGame
            , string description
            , int statke
            , int flate
        )
        {
            ChallengeDataKv kv = new ChallengeDataKv();

            kv.Kv.Set("MethodName", (int)MethodNameE.AddChallengeData);
            kv.Kv.Set(StdKv.CurrentUserID, WhiteUserID);
            kv.ChallengerUserID      = WhiteUserID;
            kv.ChallengeTypeIDE      = challengeTypeE;
            kv.ChessTypeID           = chessTypeID;
            kv.ColorIDE              = colorIDE;
            kv.IsRated               = isRated;
            kv.WithClock             = withClock;
            kv.IsChallengerSendsGame = challengerSendsGame;
            kv.Description           = description;
            kv.OpponentUserID        = blackUserID;
            kv.RoomID         = roomID;
            kv.StatusIDE      = StatusE.Active;
            kv.GameTypeIDE    = gameTypeIDE;
            kv.TimeMin        = timeMin;
            kv.GainPerMoveMin = gainPerMove;
            kv.Stake          = statke;
            kv.Flate          = flate;
            DataSet ds = SocketClient.Instance.Invoke(kv.Kv.DataTable.Copy());

            return(ds);
        }