public BaseForm(SqlConnection cn, string competitionTitle, String baseResourceFile = "ClimbingCompetition.ListHeaderStrings") : this(baseResourceFile) { this.cTitle = competitionTitle; if (cn == null || cn.ConnectionString == "") { cr = SpeedRules.DefaultAll; return; } con = new SqlConnection(cn.ConnectionString); try { con.Open(); } catch (Exception ex) { MessageBox.Show("Невозможно открыть соединение:\r\n" + ex.Message); } try { cr = SortingClass.GetCompRules(this.cn, false); bool leaveTrains = SettingsForm.GetLeaveTrains(this.cn); if (leaveTrains) { cr = cr | SpeedRules.InternationalRules; } else { cr = cr & (~SpeedRules.InternationalRules); } } catch (Exception ex) { cr = SpeedRules.DefaultAll; MessageBox.Show("Невозможно определить правила проведения соревнований:\r\n" + ex.Message + "\r\nБудут использоваться российские правила"); } }
private ApiListHeader GetListHeader(int iid) { using (var cmd = this.CreateCommand()) { cmd.CommandText = "select G." + ServiceHelper.REMOTE_ID_COLUMN + " group_id, L.listType, L.style, L.round, isnull(L.quote,0) quote," + " L.allowView, isnull(LP." + ServiceHelper.REMOTE_ID_COLUMN + ", '') prevRoundId, isnull(L.routeNumber,0) routeNumber," + " isnull(PR." + ServiceHelper.REMOTE_ID_COLUMN + ", '') parentIid," + " IsNull(L." + ServiceHelper.REMOTE_ID_COLUMN + ", '') " + ServiceHelper.REMOTE_ID_COLUMN + " from Lists L(nolock)" + " left join Lists LP(nolock) on LP.iid = L.prev_round" + " left join Lists PR(nolock) on PR.iid = L.iid_parent" + " join Groups G(nolock) on G.iid = L.group_id" + " where L.iid = @iid"; cmd.Parameters.Add("@iid", SqlDbType.Int).Value = iid; bool iRulesLead = SettingsForm.GetLeaveTrains(this.cn, this.currentTransaction); var sr = SettingsForm.GetSpeedRules(this.cn, this.currentTransaction); using (var rdr = cmd.ExecuteReader()) { if (!rdr.Read()) { return(null); } int routeNumber; var round = ClimbingRoundExtensions.GetByLocalizedValue(rdr["round"].ToString(), out routeNumber, DefaultUICulture); if (routeNumber < 1) { routeNumber = Convert.ToInt32(rdr["routeNumber"]); } ListType listType; try { listType = (ListType)Enum.Parse(typeof(ListType), rdr["listType"].ToString(), true); } catch { listType = ListType.Unknown; } Rules r; var style = Extensions.StringExtensions.GetEnumByStringValue <ClimbingStyles>(rdr["style"].ToString(), ClimbingStyles.Lead, DefaultUICulture); if (style == ClimbingStyles.Speed) { r = (sr & SpeedRules.InternationalSchema) == SpeedRules.InternationalSchema ? Rules.International : Rules.Russian; if ((sr & SpeedRules.BestResultFromTwoQfRounds) == SpeedRules.BestResultFromTwoQfRounds) { r = r | Rules.BestRouteInQf; } } else { r = iRulesLead ? Rules.International : Rules.Russian; } return(new ApiListHeader { AgeGroupInCompId = rdr["group_id"].ToString(), ClimbingRules = r, IidParent = rdr["parentIid"].ToString(), ListTypeV = listType, Live = Convert.ToInt32(rdr["allowView"]) > 0, PreviousRoundId = rdr["prevRoundId"].ToString(), Quota = Convert.ToInt32(rdr["quote"]), Round = round, RouteNumber = routeNumber, Style = style, Iid = rdr[ServiceHelper.REMOTE_ID_COLUMN].ToString(), SecretaryId = iid }); } } }