public CompetitionApiModel() { this.Iid = 0; this.DateStart = this.DateEnd = DateTime.MinValue; this.FullName = this.ShortName = String.Empty; this.Rules = CompetitionRules.International; }
public static void SortResults(DataTable dt, int quote, bool frstRound, bool isQuali, /*SpeedRules*/ CompetitionRules cRules, bool ForceQf = false) { if (dt == null || dt.Rows.Count < 1) { return; } SortResults(dt, frstRound, isQuali); //bool rulesIntl = (cRules & SpeedRules.InternationalRules) == SpeedRules.InternationalRules; if (cRules == CompetitionRules.International) { if (dt.Columns.IndexOf("posV") < 0) { dt.Columns.Add("posV", typeof(double)); } for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; double d; if (double.TryParse(dr["posText"].ToString(), out d)) { dr["posV"] = d; } else if (i == 0) { dr["posV"] = 1.0; } else if (Convert.ToInt32(Convert.ToDouble(dr["pts"]) * 100) == Convert.ToInt32(Convert.ToDouble(dt.Rows[i - 1]["pts"]) * 100)) { dr["posV"] = dt.Rows[i - 1]["posV"]; } else { dr["posV"] = Convert.ToDouble(dt.Rows[i - 1]["posV"]) + 0.01; } } } //int nVk = 0; //int curRow = 0; //int curPl = -1; double qD; if (quote > 0) { if (cRules == CompetitionRules.International) { qD = (double)quote + 0.001; } else { qD = (double)quote + 0.65; } } else { qD = -100.0; } foreach (DataRow dr in dt.Rows) { if (cRules == CompetitionRules.Russian) { if (Convert.ToDouble(dr["pts"]) < qD && Convert.ToDouble(dr["pts"]) > 0.11) { dr["qf"] = "Q"; } } else { if (Convert.ToDouble(dr["posV"]) < qD && Convert.ToDouble(dr["pts"]) > 0.11) { dr["qf"] = "Q"; } } try { if (frstRound && (!isQuali)) { switch (dr["sp"].ToString()) { case "1": dr["pts"] = dr["pos"] = DSQ_POS; if (!ForceQf) { dr["qf"] = ""; } break; case "2": dr["pts"] = dr["pos"] = DNS_POS; if (!ForceQf) { dr["qf"] = ""; } break; } } } catch { } } int lastQ = -1; for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["qf"].ToString().ToLower().IndexOf("q") > -1) { lastQ = i; } else { break; } } if (lastQ >= 0 && Convert.ToBoolean(dt.Rows[lastQ]["vk"])) { double lQpts = Convert.ToDouble(dt.Rows[lastQ]["pts"]); if (lQpts > (double)quote) { int i = lastQ - 1; if (i >= 0 && Convert.ToDouble(dt.Rows[i]["pts"]) < lQpts) { dt.Rows[lastQ]["qf"] = ""; } } } }
public Competition(CompetitionRules <T> rules) { Rules = rules; Results = new List <CompetitionResults <T> >(); Competitors = new List <Competitor <T> >(); }