Exemplo n.º 1
0
        private static Kv GetGuest(Cxt cxt, string applicationCode)
        {
            User item = new User();

            item.UserName      = "******" + applicationCode;
            item.Password      = "******";
            item.FirstName     = "Guest";
            item.HumanRankIDE  = RankE.Guest;
            item.EngineID      = 1;
            item.UserStatusIDE = UserStatusE.Blank;
            item.RoomID        = 3;
            item.DateLastLogin = DateTime.Now;
            item.StatusIDE     = StatusE.Active;
            item.Save();

            item.UserName = "******" + item.ID;
            item.Save();

            DataTable roles = User.GetRolesTable(item.UserID);

            Kv kv1 = new Kv();

            kv1.Set("Msg", -1);
            kv1.Set("UserData", UData.ToString(item.DataRow.Table));
            kv1.Set("RolesData", UData.ToString(roles.Copy()));

            return(kv1);
        }
Exemplo n.º 2
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            double amount = 0;

            if (!Double.TryParse(txtAmount.Text.Trim(), out amount))
            {
                MessageForm.Error("Please enter correct amount.");
                return;
            }

            Kv kv = new Kv();

            kv.Set("TournamentID", this.Tournament.TournamentID);
            kv.Set("PrizePosition", GetPrizeIndex(cmbPrize.Text));
            kv.Set("TournamentPrizeCategoryID", Convert.ToInt32(cmbCategory.SelectedValue));
            kv.Set("PrizeAmount", amount);

            DataSet ds = SocketClient.AddPrize(kv);

            if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                TournamentPrize = new TournamentPrize(Ap.Cxt, ds.Tables[0].Rows[0]);
            }
            txtAmount.Text = "";
            RefreshGrid();
        }
Exemplo n.º 3
0
        private void BlockMachine(Kv kv)
        {
            String machineKey;

            BlockMachineE blockMachineE = (BlockMachineE)kv.GetInt32("BlockMachineE");

            switch (blockMachineE)
            {
            case BlockMachineE.Initialized:
                machineKey = WmiHelper.GetMachineKey();
                if (!String.IsNullOrEmpty(machineKey))
                {
                    MessageForm.Show(this, MsgE.InfoBlockMachine);
                    kv.Set("MachineKey", machineKey);
                    kv.Set("BlockMachine", (int)BlockMachineE.Done);
                }
                SocketClient.SendAvResponse(kv);
                break;

            case BlockMachineE.Done:
                machineKey = kv.Get("MachineKey");
                if (!String.IsNullOrEmpty(machineKey))
                {
                    MessageForm.Show(this, MsgE.ErrorBlockMachine);
                }
                break;
            }
        }
Exemplo n.º 4
0
        void FillServerTime()
        {
            this.dtpLocalTimeB.ValueChanged  -= new System.EventHandler(this.dtpLocalTimeB_ValueChanged);
            this.dtpServerTimeB.ValueChanged -= new System.EventHandler(this.dtpServerTimeB_ValueChanged);
            this.dtpLocalTimeB.KeyDown       -= new KeyEventHandler(dtpLocalTimeB_KeyDown);
            this.dtpServerTimeB.KeyDown      -= new KeyEventHandler(this.dtpServerTimeB_KeyDown);

            Kv kv = new Kv();

            kv.Set("MethodName", (int)MethodNameE.GetServerTime);
            kv.Set(StdKv.CurrentUserID, Ap.CurrentUserID);
            DataSet ds = SocketClient.GetServerTime();

            if (ds.Tables.Count > 0)
            {
                Kv     kvServerTime = new Kv(ds.Tables[0]);
                string serverTime   = kvServerTime.Get("ServerTime");
                if (serverTime.Trim().Length > 0)
                {
                    dtpServerTimeA.Text = serverTime;
                    dtpServerTimeB.Text = serverTime;
                    tsServer            = dtpServerTimeA.Value.TimeOfDay;
                }
            }
            this.dtpLocalTimeB.KeyDown       += new KeyEventHandler(dtpLocalTimeB_KeyDown);
            this.dtpLocalTimeB.ValueChanged  += new System.EventHandler(this.dtpLocalTimeB_ValueChanged);
            this.dtpServerTimeB.ValueChanged += new System.EventHandler(this.dtpServerTimeB_ValueChanged);
            this.dtpServerTimeB.KeyDown      += new KeyEventHandler(this.dtpServerTimeB_KeyDown);
        }
Exemplo n.º 5
0
        public static DataTable LoginKv(Kv kv)
        {
            DataSet ds    = Login(kv.Cxt, kv.Get("LoginID"), kv.Get("Password"), kv.Get("AccessCode"), kv.Get("Ip"), kv.Get("MachineCode"), Convert.ToDateTime(kv.Get("ServerDate")));
            int     msgId = UData.ToInt32(ds.Tables[0].Rows[0]["MsgId"]);

            kv = new Kv();
            kv.Set("Msg", UData.ToString(ds.Tables[0]));

            if (ds.Tables.Count > 1)
            {
                kv.Set("UserData", UData.ToString(ds.Tables[1]));
                kv.Set("RolesData", UData.ToString(ds.Tables[2]));
            }

            return(kv.DataTable);
        }
Exemplo n.º 6
0
        public static DataTable LogoffUser(Cxt cxt, int userID)
        {
            Kv             Kv = new Kv();
            SqlTransaction t  = null;

            try
            {
                t = SqlHelper.BeginTransaction(Config.ConnectionString);
                Challenges.UpdateChallengesStatus(t, userID);
                User item = new User(cxt, userID);
                item.UserStatusIDE = UserStatusE.Gone;
                //item.StatusIDE = item.IsGuest ? StatusE.Inactive : item.StatusIDE;
                item.EngineID = 1;
                item.IsIdle   = false;
                item.IsPause  = false;
                item.Save(t); //Transaction also commited in this method
                Kv.Set("LogedOff", true);
            }
            catch (Exception ex)
            {
                SqlHelper.RollbackTransaction(t);
                throw ex;
            }

            return(Kv.DataTable);
        }
Exemplo n.º 7
0
        public static DataTable ForgotPassword(Cxt cxt, string userName)
        {
            Kv   Kv   = new Kv();
            User user = User.GetUser(cxt, userName);

            if (user.IsNew)
            {
                Kv.Set("Updated", false);
            }
            else
            {
                Kv.Set("Updated", ForgotPassword(cxt, user));
            }


            return(Kv.DataTable);
        }
Exemplo n.º 8
0
        public static Kv CreateKnockoutTournament(Cxt cxt, Tournament tournament)
        {
            Kv  kv     = new Kv();
            int result = GetRoundInProgress(cxt, tournament);

            if (result > 0)
            {
                kv.Set("Result", result);
                return(kv);
            }

            CreateKnockoutTournamentMatches(cxt, tournament);

            kv.Set("Result", 0);

            return(kv);
        }
Exemplo n.º 9
0
        public static Kv UpdateTournamentMatchStatus(Cxt cxt, int tournamentID, TournamentMatchStatusE tournamentMatchStatusID, TournamentMatches matches)
        {
            Kv  kv     = new Kv();
            int result = 0;

            if (tournamentMatchStatusID == TournamentMatchStatusE.InProgress)
            {
                result = GetRoundInprogress(cxt, tournamentID, matches);
                if (result > 0)
                {
                    kv.Set("Result", result);
                    return(kv);
                }
            }
            DataTable dt = new DataTable("TournamentMatchResult");

            dt.Columns.Add("Round", typeof(Int32));
            dt.Columns.Add("TournamentMatchID", typeof(Int32));
            dt.Columns.Add("Player1", typeof(Int32));
            dt.Columns.Add("Player2", typeof(Int32));

            for (int i = 0; i < matches.Count; i++)
            {
                result = 0;

                TournamentMatch item = matches[i];


                if (tournamentMatchStatusID == TournamentMatchStatusE.InProgress)
                {
                    result = IsPlayerAvailable(cxt, item);
                }

                if (result == 0)
                {
                    UpdateTournamentMatchStatus(cxt, tournamentMatchStatusID, item);
                    dt.Rows.Add(item.Round, item.TournamentMatchID, item.WhiteUserID, item.BlackUserID);
                }
            }
            kv.Set("TournamentMatchResult", UData.ToString(dt));
            kv.Set("Result", result);

            return(kv);
        }
Exemplo n.º 10
0
        public static Kv StartRound(Cxt cxt, int tournamentID)
        {
            Kv kv = new Kv();

            int result = StartTournamentRound(cxt, tournamentID);

            kv.Set("Result", result);

            return(kv);
        }
Exemplo n.º 11
0
        public static Kv UpdateReplacePlayer(Cxt cxt, int tournamentID, int userID, int userID2)
        {
            Kv             kv    = new Kv();
            SqlTransaction trans = null;

            try
            {
                trans = SqlHelper.BeginTransaction(Config.ConnectionString);

                bool result = TournamentMatch.GetTournamentMatchByTournamentUserID(cxt, tournamentID, userID);

                if (result)
                {
                    kv.Set("Result", (int)MsgE.ErrorTournamentPlayerReplaceUser);
                    return(kv);
                }

                TournamentUser tu = GetTournamentUserById(cxt, tournamentID, userID);

                BaseCollection.Execute(trans, "UpdateTournamentMatchWithUser", tournamentID, userID, userID2, cxt.CurrentUserID, 3);

                if (tu.UserID2 > 0)
                {
                    userID = tu.UserID2;
                }


                BaseCollection.Execute(trans, "UpdateTournamentMatchWithUser", tournamentID, userID, userID2, cxt.CurrentUserID, 0);

                BaseCollection.Execute(trans, "UpdateTournamentMatchWithUser", tournamentID, userID, userID2, cxt.CurrentUserID, 1);

                SqlHelper.CommitTransaction(trans);
                kv.Set("Result", 0);
            }
            catch (Exception ex)
            {
                SqlHelper.RollbackTransaction(trans);
                Log.Write(cxt, ex);
            }
            return(kv);
        }
Exemplo n.º 12
0
        public static DataTable ChangePassword(Cxt cxt, int userID, string password, string passwordHint)
        {
            User item = new User(cxt, userID);

            item.Password     = password;
            item.PasswordHint = passwordHint;
            item.Save();

            MailVerifyResult mvr = EmailTemplate.Send(cxt, EmailTemplateE.ChangePassword, item);
            Kv Kv = new Kv();

            if (mvr == MailVerifyResult.Ok)
            {
                Kv.Set("Updated", true);
            }
            else
            {
                Kv.Set("Updated", false);
            }
            return(Kv.DataTable);
        }
Exemplo n.º 13
0
        public static DataTable LoginGuest(Kv kv)
        {
            DataSet ds = Login(kv.Cxt, kv.Get("LoginID"), kv.Get("Password"), kv.Get("AccessCode"), kv.Get("Ip"),
                               kv.Get("MachineCode"), DateTime.Now);
            int msgId = UData.ToInt32(ds.Tables[0].Rows[0]["MsgId"]);

            Kv kvOut = new Kv();

            kvOut.Cxt = kv.Cxt;
            kvOut.Set("MsgId", msgId);
            kvOut.Set("ServerDateTime", DateTime.Now.ToString());

            if ((SignInMsgE)msgId == SignInMsgE.UserNotFound)
            {
                kvOut = GetGuest(kvOut.Cxt, kv.Get("AccessCode"));
            }
            else
            {
                if (ds.Tables.Count > 1)
                {
                    kvOut.Set("UserData", UData.ToString(ds.Tables[1]));
                    kvOut.Set("RolesData", UData.ToString(ds.Tables[2]));
                }
            }

            System.Diagnostics.Debug.WriteLine("**************** S T A R T **************");

            string s = UData.ToString(ds);

            if (String.IsNullOrEmpty(s))
            {
                System.Diagnostics.Debug.WriteLine("<EMPTY DATASET>");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("ROWS=" + kvOut.DataTable.Rows.Count);
            }

            return(kvOut.DataTable);
        }
Exemplo n.º 14
0
        public static Kv IsFinalRoundCompleted(Cxt cxt, Tournament tournament)
        {
            Kv kv = new Kv();

            int result = GetRoundInProgress(cxt, tournament);

            if (result == 0)
            {
                result = GetKnockoutTournamentMatchesCount(cxt, tournament);
            }

            kv.Set("Result", result);

            return(kv);
        }
Exemplo n.º 15
0
        private DataTable GetFiles()
        {
            string folderPath = "";

            folderPath = GetFolderPath();

            string[] files = Directory.GetFiles(folderPath, "*.jpg");
            string   k     = "";
            string   v     = "";
            Kv       kv    = new Kv();

            kv.DataTable.Clear();

            foreach (string file in files)
            {
                k = Path.GetFileNameWithoutExtension(file);
                v = Path.GetFileName(file);
                kv.Set(k, v);
            }
            return(kv.DataTable);
        }
Exemplo n.º 16
0
        private void AvChat(Kv kv)
        {
            AvChatE avChat = (AvChatE)kv.GetInt32("AvChat");

            switch (avChat)
            {
            case AvChatE.Asked:
                if (!AvPlayer.IsIdle())
                {
                    kv.Set("AvChat", (int)AvChatE.Busy);
                    SocketClient.SendAvResponse(kv);
                    return;
                }
                this.Invoke(new AvPlayer.StartChatDelegate(AvPlayer.StartChat), kv.DataTable);
                break;

            case AvChatE.Accepted:
                this.Invoke(new AvPlayer.PlayChatDelegate(AvPlayer.PlayChat));
                break;

            case AvChatE.Declined:
                this.Invoke(new AvPlayer.StopChatDelegate(AvPlayer.StopChat));
                ChatClient.Write((ChatTypeE)kv.GetInt32("ClientWindow"), ChatMessageTypeE.Error, (ChatTypeE)kv.GetInt32("ClientWindow"), Msg.GetMsg(MsgE.ErrorAvChatDenied, kv.Get("ToUserName")), 0);
                break;

            case AvChatE.Busy:
                this.Invoke(new AvPlayer.StopChatDelegate(AvPlayer.StopChat));
                ChatClient.Write((ChatTypeE)kv.GetInt32("ClientWindow"), ChatMessageTypeE.Error, (ChatTypeE)kv.GetInt32("ClientWindow"), Msg.GetMsg(MsgE.ErrorAvChatBusy, kv.Get("ToUserName")), 0);
                break;

            case AvChatE.NoService:
                this.Invoke(new AvPlayer.StopChatDelegate(AvPlayer.StopChat));
                ChatClient.Write((ChatTypeE)kv.GetInt32("ClientWindow"), ChatMessageTypeE.Error, (ChatTypeE)kv.GetInt32("ClientWindow"), MsgE.InfoNoAvService, 0);
                break;

            default:
                break;
            }
        }
Exemplo n.º 17
0
        public static void StartChat(DataTable dt)
        {
            Kv          kv = new Kv(dt);
            string      chatType;
            int         fromUserId   = kv.GetInt32("FromUserID");
            int         toUserId     = kv.GetInt32("ToUserID");
            string      fromUserName = kv.Get("FromUserName");
            AvChatTypeE chatTypeE    = (AvChatTypeE)kv.GetInt32("AvChatType");

            if (chatTypeE == AvChatTypeE.Audio)
            {
                chatType = "audio";
            }
            else
            {
                chatType = "video";
            }

            if (MessageForm.Confirm(ActiveForm, MsgE.InfoAvChatRequested, chatType, fromUserName) == DialogResult.No)
            {
                kv.Set("AvChat", (int)AvChatE.Declined);
                SocketClient.SendAvResponse(kv);
                return;
            }

            state         = AvChatStateE.Talking;
            initiatedChat = false;
            ChatType      = chatTypeE;
            FromUserId    = fromUserId;
            FromUserName  = fromUserName;
            ToUserId      = toUserId;

            if (avPlayer != null)
            {
                avPlayer.Dispose();
                avPlayer = null;
            }

            StringBuilder connectionString = new StringBuilder("rtmp://");

            connectionString.Append(Config.AvServerIp);
            connectionString.Append(":");
            connectionString.Append(Config.AvServerPort);
            connectionString.Append("/videochat");

            try
            {
                avPlayer = new AvPlayer();
                if (ChatType == AvChatTypeE.Video)
                {
                    ShowPlayer();
                }

                string chatTypeString = ((int)ChatType + 1).ToString();
                avPlayer.player.CallFunction("<invoke name=\"StartChat\" returntype=\"xml\"><arguments><string>" + connectionString.ToString() + "</string><string>" + FromUserId + "</string><string>" + ToUserId + "</string><number>" + chatTypeString + "</number></arguments></invoke>");

                if (OnAvChatBegan != null)
                {
                    OnAvChatBegan.Invoke(typeof(AvPlayer), new AvChatEventArgs(ChatType));
                }
            }

            catch (AccessViolationException ex)
            {
                TestDebugger.Instance.WriteError(ex);
                StopChat();
                MessageForm.Show(null, MsgE.ErrorAvNoCamera, MessageBoxButtons.OK, MessageBoxIcon.Error, ex);
            }
            catch (COMException e)
            {
                TestDebugger.Instance.WriteError(e);
                if (e.Message.Substring(0, 20) == "Class not registered")
                {
                    MessageForm.Show(null, MsgE.ErrorAvNoPlayer, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemplo n.º 18
0
        private bool Save()
        {
            int player1 = 0, player2 = 0;

            if (!IsWhiteBlackPlayer)
            {
                MessageForm.Error(Msg.GetMsg(MsgE.ErrorWhiteAndBlackBye));
                return(false);
            }

            if (IsChildRound)
            {
                MessageForm.Error(Msg.GetMsg(MsgE.ErrorTieBreakMatchStart));
                return(false);
            }

            player1 = Player1;
            player2 = Player2;

            if (cbColorA.SelectedIndex == 1)
            {
                player1 = Player2;
                player2 = Player1;
            }


            Kv kv = new Kv();

            if (this.Tournament != null)
            {
                kv.Set("TournamentID", this.Tournament.TournamentID);
            }

            kv.Set("WhiteUserID", player1);
            kv.Set("BlackUserID", player2);

            kv.Set("Round", round);

            if (cmbMin.SelectedItem != null)
            {
                kv.Set("TimeMin", cmbMin.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TimeMin", 1);
            }

            if (cmbSec.SelectedItem != null)
            {
                kv.Set("TimeSec", cmbSec.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TimeSec", 0);
            }

            kv.Set("MatchStartDate", DateTime.Now);
            kv.Set("MatchStartTime", DateTime.Now);

            kv.Set("ParentMatchID", this.ParentMatchID);
            kv.Set("TournamentMatchStatusID", (int)TournamentMatchStatusE.Scheduled);
            kv.Set("TournamentMatchTypeID", (int)TournamentMatchTypeE.TieBreak);

            ProgressForm frmProgress = ProgressForm.Show(this, "Saving Match...");

            DataSet ds = SocketClient.SaveTournamentMatch(kv);

            frmProgress.Close();
            return(true);
        }
Exemplo n.º 19
0
        private void SaveTournament()
        {
            Kv kv = new Kv();

            if (Tournament != null)
            {
                kv.Set("TournamentID", this.Tournament.TournamentID);
            }

            if (cmbType.SelectedValue != null)
            {
                kv.Set("TournamentTypeID", cmbType.SelectedValue.ToString());
            }

            if (cmbChessType.SelectedValue != null)
            {
                kv.Set("ChessTypeID", cmbChessType.SelectedValue.ToString());
            }

            if (cmbRound.SelectedItem != null)
            {
                kv.Set("Round", cmbRound.SelectedItem.ToString());
            }
            else
            {
                kv.Set("Round", 1);
            }

            if (cmbDblRound.SelectedItem != null)
            {
                kv.Set("DoubleRoundNo", Convert.ToInt32(cmbDblRound.Text));
            }
            else
            {
                kv.Set("DoubleRoundNo", 0);
            }

            if (cmbType.SelectedValue != null && cmbType.SelectedValue.ToString() == "3") // if knock-out tournament.
            {
                chkAllowTieBreak.Checked = numTieBreaks.Value > 0;
            }

            kv.Set("Rated", chkRated.Checked);
            kv.Set("DoubleRound", chkDoubleRound.Checked);
            kv.Set("IsTieBreak", chkAllowTieBreak.Checked);

            if (cmbMin.SelectedItem != null)
            {
                kv.Set("TimeControlMin", cmbMin.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TimeControlMin", 1);
            }

            if (cmbSec.SelectedItem != null)
            {
                kv.Set("TimeControlSec", cmbSec.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TimeControlSec", 1);
            }

            kv.Set("RegistrationStartDate", dtpRegStartDate.Value.ToString());
            kv.Set("RegistrationStartTime", dtpRegStartTime.Value.ToShortTimeString());

            kv.Set("RegistrationEndDate", dtpRegEndDate.Value.ToString());
            kv.Set("RegistrationEndTime", dtpRegEndTime.Value.ToShortTimeString());

            kv.Set("TournamentStartDate", dtpTournamentStartDate.Value.ToString());
            kv.Set("TournamentStartTime", dtpTournamentStartTime.Value.ToShortTimeString());

            kv.Set("TournamentStatusID", (int)TournamentStatusE.Scheduled);
            kv.Set("StatusID", (int)StatusE.Active);
            kv.Set("TournamentStartTime", dtpTournamentStartTime.Value.ToString());

            kv.Set("Name", txtTitle.Text);
            kv.Set("Description", txtInvitation.Text);

            if (cmbTbMin.SelectedItem != null)
            {
                kv.Set("TieBreakMin", cmbTbMin.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TieBreakMin", 1);
            }
            if (cmbTbSec.SelectedItem != null)
            {
                kv.Set("TieBreakSec", cmbTbSec.SelectedItem.ToString());
            }
            else
            {
                kv.Set("TieBreakSec", 1);
            }
            kv.Set("NoOfGamesPerRound", numGames.Value);
            kv.Set("NoOfTieBreaks", numTieBreaks.Value);
            kv.Set("SuddenDeathWhiteMin", cmbWhiteMin.SelectedItem.ToString());
            kv.Set("SuddenDeathBlackMin", cmbBlackMin.SelectedItem.ToString());
            kv.Set("SuddenDeathSec", cmbSdSec.SelectedItem.ToString());

            if (chkAllowMultipleWinners.Checked)
            {
                kv.Set("MaxWinners", numMaxWinners.Value);
            }
            else
            {
                kv.Set("MaxWinners", 0);
            }

            ProgressForm frmProgress = ProgressForm.Show(this, "Saving Tournament...");

            DataSet ds = SocketClient.SaveTournament(kv);

            frmProgress.Close();

            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    kv = new Kv(ds.Tables[0]);
                    this.Tournament = new App.Model.Db.Tournament(Ap.Cxt, ds.Tables[0].Rows[0]);
                }
            }
            else
            {
                return;
            }

            if (this.Tournament == null)
            {
                return;
            }

            if (OnTournamentSave != null)
            {
                OnTournamentSave(this, EventArgs.Empty);
            }

            if (this.Tournament != null)
            {
                if (this.Tournament.TournamentID > 0)
                {
                    MessageForm.Show(this.ParentForm, MsgE.ConfirmTournamentSaved, this.Tournament.Name);
                    cmbChessType.Enabled = false;
                }
            }


            if (OnVisibleTab != null)
            {
                OnVisibleTab(this, EventArgs.Empty);
            }

            ViewStartTournamentButton();
        }
Exemplo n.º 20
0
        public static void CreateChildMatch(Tournament t, TournamentMatch m, TournamentMatchTypeE matchType)
        {
            Kv kv = null;

            if (m != null)
            {
                kv = new Kv();

                kv.Set("TournamentID", m.TournamentID);

                kv.Set("WhiteUserID", m.BlackUserID);
                kv.Set("BlackUserID", m.WhiteUserID);

                kv.Set("Round", m.Round);

                switch (matchType)
                {
                case TournamentMatchTypeE.Normal:
                    kv.Set("TimeMin", m.TimeMin);
                    kv.Set("TimeSec", m.TimeSec);
                    break;

                case TournamentMatchTypeE.TieBreak:
                    kv.Set("TimeMin", t.TieBreakMin);
                    kv.Set("TimeSec", t.TieBreakSec);
                    break;

                case TournamentMatchTypeE.SuddenDeath:
                    kv.Set("TimeMin", t.SuddenDeathWhiteMin);
                    kv.Set("TimeSec", t.SuddenDeathSec);
                    break;

                default:
                    break;
                }

                kv.Set("MatchStartDate", DateTime.Now);
                kv.Set("MatchStartTime", DateTime.Now);

                kv.Set("ParentMatchID", m.ParentMatchID > 0 ? m.ParentMatchID : m.TournamentMatchID);
                kv.Set("TournamentMatchStatusID", (int)TournamentMatchStatusE.Scheduled);
                kv.Set("TournamentMatchTypeID", (int)matchType);
                kv.Set("StatusID", (int)StatusE.Active);
            }

            App.Model.Db.TournamentMatch.SaveTournamentMatch(kv);
        }