private void Init() { if (UserFormulas.Instance == null) { return; } UserFormula formula = UserFormulas.Instance.GetUserFormula(); if (formula == null) { return; } chkUnrated.Checked = formula.IsUnrated; chkRated.Checked = formula.IsRated; chkDucats.Checked = formula.IsDucate; chkNoComputer.Checked = formula.IsNoComputer; chkNoCentaur.Checked = formula.IsNoCentaur; chkFastInternet.Checked = formula.IsFastInternetOnly; numericMinElo.Value = formula.MinElo; numericMaxElo.Value = formula.MaxElo; numericMinTime.Value = formula.MinTime; numericMaxTime.Value = formula.MaxTime; numericMinGain.Value = formula.MinGainPerMove; numericMaxGain.Value = formula.MaxGainPerMove; comboBoxMinRank.SelectedValue = formula.RankID; numericMinDucats.Value = formula.DucatesToOverride; chkActivate.Checked = formula.IsActive; }
public DataTable UpdateFormula() { UserFormula item; try { string selectQuery; DataTable table; selectQuery = "SELECT TOP 1 * FROM UserFormula WHERE UserID = @p1"; table = BaseCollection.ExecuteSql(InfiChess.UserFormula, selectQuery, UserID); if (table != null && table.Rows.Count > 0) { item = new UserFormula(base.Kv.Cxt, table.Rows[0]); } else { item = new UserFormula(); } item.Cxt = base.Kv.Cxt; item.UserID = UserID; item.IsUnrated = IsUnrated; item.IsRated = IsRated; item.IsDucate = IsDucate; item.IsNoComputer = IsNoComputer; item.IsNoCentaur = IsNoCentaur; item.IsFastInternetOnly = IsFastInternetOnly; item.MinElo = MinElo; item.MaxElo = MaxElo; item.MinTime = MinTime; item.MaxTime = MaxTime; item.MinGainPerMove = MinGainPerMove; item.MaxGainPerMove = MaxGainPerMove; item.RankID = RankID; item.DucatesToOverride = DucatesToOverride; item.IsActive = IsActive; item.Cxt.CurrentUserID = base.Kv.Cxt.CurrentUserID; item.Save(); } catch (Exception ex) { throw ex; } return(Challenges.GetChallengesByRoomID(item.Cxt, base.Kv.GetInt32("RoomID"), item.Cxt.CurrentUserID)); }
private DataTable CheckUserFormula(DataTable dt) { if (UserFormulas.Instance == null) { return(dt); } UserFormula formula = UserFormulas.Instance.GetUserFormula(); if (dt == null || dt.Rows.Count <= 0 || formula == null || !formula.IsActive) { return(dt); } DataTable FilteredTable = new DataTable(); try { DataView dv = new DataView(dt); dv.RowFilter = "ChallengerUserID = " + Ap.CurrentUserID; FilteredTable = dv.ToTable(); DataTable table = new DataTable(); DataTable table1 = new DataTable(); StringBuilder QueryFilter = new StringBuilder(); int internetID = 5; if (formula.IsFastInternetOnly) { internetID = 2; } if (formula.IsNoComputer) { QueryFilter.Append("ChessTypeID <> 2 AND "); } if (formula.IsRated && !formula.IsUnrated) { QueryFilter.Append("Condition = true AND "); } else if (!formula.IsRated && formula.IsUnrated) { QueryFilter.Append("Condition = false AND "); } else if (!formula.IsRated && !formula.IsUnrated) { QueryFilter.Append("(Condition = false AND Condition = true) AND "); } QueryFilter.Append("(GainPerMoveMin >= " + formula.MinGainPerMove + " AND " + " GainPerMoveMin<= " + formula.MaxGainPerMove + ") AND "); QueryFilter.Append("(GameTime >= " + formula.MinTime + " AND " + " GameTime<= " + formula.MaxTime + ")"); string ChallengerRankID; if (formula.RankID == 7) { ChallengerRankID = "ChallengerRankID <= " + formula.RankID; } else { ChallengerRankID = "(ChallengerRankID <> 7 AND ChallengerRankID >= " + formula.RankID + ")"; } dv = new DataView(dt); dv.RowFilter = "ChallengerUserID <> " + Ap.CurrentUserID + " AND InternetC <= " + internetID + " AND ChallengerElo >= " + formula.MinElo + " AND ChallengerElo <= " + formula.MaxElo + " AND " + ChallengerRankID + " AND Type = 1 AND " + QueryFilter; table = dv.ToTable(); dv = new DataView(dt); dv.RowFilter = "ChallengerUserID <> " + Ap.CurrentUserID + " AND InternetC <= " + internetID + " AND (ChallengerElo >= " + formula.MinElo + " AND ChallengerElo <= " + formula.MaxElo + ") AND " + ChallengerRankID + " AND Type <> 1 AND " + QueryFilter; table1 = dv.ToTable(); FilteredTable.Merge(table); FilteredTable.Merge(table1); foreach (DataRow item in FilteredTable.Rows) { DataRow r = dt.Select("ChallengeID = " + item["ChallengeID"])[0]; dt.Rows.Remove(r); } dv = new DataView(dt); dv.RowFilter = "Type <> 1 AND TournamentMatchID = 0"; dt = dv.ToTable(); if (dt.Rows.Count > 0) { SocketClient.DeclineChallenges(dt); } } catch (Exception ex) { TestDebugger.Instance.WriteError(ex); } return(FilteredTable); }