private int CompareSection(RemoteConfigSectionParam rcsp1, RemoteConfigSectionParam rcsp2) { if (rcsp1.MajorVersion == rcsp2.MajorVersion) { return(rcsp2.MinorVersion - rcsp1.MinorVersion); } return(rcsp2.MajorVersion - rcsp1.MajorVersion); }
public void AddSection(string sectionName, int major, int minor, string url, string currentSetting) { RemoteConfigSectionParam param = new RemoteConfigSectionParam(); param.SectionName = sectionName; param.MajorVersion = major; param.MinorVersion = minor; param.DownloadUrl = url; Sections.Add(param); }
private DataTable GetMajors(RemoteConfigSectionCollection configs) { DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("text", typeof(string)); configs.Sections.Sort(CompareMajor); foreach (var t in configs.Sections) { var dr = dt.NewRow(); RemoteConfigSectionParam section = t; dr["id"] = section.MajorVersion.ToString(); dr["text"] = section.MajorVersion.ToString(); dt.Rows.Add(dr); } return(dt); }
private DataTable GetApplications(RemoteConfigSectionCollection configs) { DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("text", typeof(string)); bool HaveNoAppPath = false; foreach (RemoteConfigSectionParam section in configs.Sections) { if (string.Compare(section.SectionName, NoAppPath) == 0) { HaveNoAppPath = true; break; } } if (!HaveNoAppPath) { configs.AddSection(NoAppPath, 0, 0); } configs.Sections.Sort(CompareApplication); foreach (var t in configs.Sections) { DataRow dr = dt.NewRow(); RemoteConfigSectionParam section = t; if (string.Compare(section.SectionName, NoAppPath) == 0) { dr["id"] = section.SectionName; dr["text"] = NoAppPath; } else { dr["id"] = section.SectionName; dr["text"] = section.SectionName; } dt.Rows.Add(dr); } return(dt); }
private int CompareMajor(RemoteConfigSectionParam x, RemoteConfigSectionParam y) { return(y.MajorVersion.CompareTo(x.MajorVersion)); }
private int CompareApplication(RemoteConfigSectionParam x, RemoteConfigSectionParam y) { return(x.SectionName.CompareTo(y.SectionName)); }
private DataTable GetMinors(RemoteConfigSectionCollection configs, byte[] Log) { string[] logs = new string[0]; if ((Log != null) && (Log.Length > 0)) { string logStr = Encoding.Default.GetString(Log); logs = logStr.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); } #region 对Section进行排序 configs.Sections.Sort(CompareSection); #endregion 对Section进行排序 DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(Int32)); dt.Columns.Add("SectionName", typeof(string)); dt.Columns.Add("Major", typeof(Int32)); dt.Columns.Add("Application", typeof(string)); dt.Columns.Add("Minor", typeof(Int32)); dt.Columns.Add("FileName", typeof(string)); dt.Columns.Add("DownloadUrl", typeof(string)); dt.Columns.Add("CanDelete", typeof(bool)); dt.Columns.Add("OperatorID", typeof(string)); dt.Columns.Add("OperateTime", typeof(string)); dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] }; string lastSectionName = null; for (int i = 0; i < configs.Sections.Count; i++) { RemoteConfigSectionParam section = configs.Sections[i]; DataRow dr = dt.NewRow(); string[] strs = section.SectionName.Split("\\".ToCharArray()); dr["ID"] = i + 1; dr["SectionName"] = strs[0]; if (string.Compare(lastSectionName, strs[0]) == 0) { dr["CanDelete"] = false; } else { dr["CanDelete"] = true; lastSectionName = dr["SectionName"].ToString(); } dr["Major"] = section.MajorVersion; if (string.Compare(strs[1], NoAppPath) == 0) { dr["Application"] = NoAppPath; dr["FileName"] = string.Format("{0}.{1}.{2}.xml", strs[0], section.MajorVersion, section.MinorVersion); } else { dr["Application"] = strs[1]; dr["FileName"] = string.Format("{0}.{1}.{2}.{3}.xml", strs[0], strs[1], section.MajorVersion, section.MinorVersion); } dr["Minor"] = section.MinorVersion; dr["DownloadUrl"] = section.DownloadUrl; foreach (string log in logs) { string[] keyValues = log.Split(";".ToCharArray()); string[] tmpStrs = keyValues[0].Split("=".ToCharArray()); if (int.Parse(tmpStrs[1]) == section.MinorVersion) { dr["OperatorID"] = keyValues[1].Split("=".ToCharArray())[1]; dr["OperateTime"] = keyValues[2].Split("=".ToCharArray())[1]; break; } } dt.Rows.Add(dr); } return(dt); }
private DataTable GetAllLastVersion(RemoteConfigSectionCollection configs) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(Int32)); dt.Columns.Add("SectionName", typeof(string)); dt.Columns.Add("Major", typeof(Int32)); dt.Columns.Add("Application", typeof(string)); dt.Columns.Add("Minor", typeof(Int32)); dt.Columns.Add("FileName", typeof(string)); dt.Columns.Add("DownloadUrl", typeof(string)); dt.Columns.Add("CanDelete", typeof(bool)); dt.Columns.Add("ShowValue", typeof(bool)); dt.Columns.Add("CanDeleteApp", typeof(bool)); dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] }; if (configs.Sections.Count == 0) { DataRow dr = dt.NewRow(); dr["ID"] = 1; dr["SectionName"] = ""; dr["Major"] = 0; dr["Application"] = ""; dr["FileName"] = ""; dr["Minor"] = 0; dr["DownloadUrl"] = ""; dr["CanDelete"] = false; dr["ShowValue"] = false; dr["CanDeleteApp"] = false; dt.Rows.Add(dr); } string lastSectionName = null; for (int i = 0; i < configs.Sections.Count; i++) { RemoteConfigSectionParam section = configs.Sections[i]; DataRow dr = dt.NewRow(); string[] strs = section.SectionName.Split("\\".ToCharArray()); dr["ID"] = i + 1; dr["SectionName"] = strs[0]; if (string.Compare(lastSectionName, strs[0]) == 0) { dr["CanDelete"] = false; } else { dr["CanDelete"] = true; lastSectionName = dr["SectionName"].ToString(); } dr["Major"] = section.MajorVersion; dr["CanDeleteApp"] = GetAppCount(configs, strs[0]) > 1 ? true : false; if (string.Compare(strs[1], NoAppPath) == 0) { dr["Application"] = NoAppPath; dr["FileName"] = string.Format("{0}.{1}.{2}.xml", strs[0], section.MajorVersion, section.MinorVersion); } else { dr["Application"] = strs[1]; dr["FileName"] = string.Format("{0}.{1}.{2}.{3}.xml", strs[0], strs[1], section.MajorVersion, section.MinorVersion); } dr["Minor"] = section.MinorVersion; dr["DownloadUrl"] = section.DownloadUrl; dr["ShowValue"] = true; dt.Rows.Add(dr); } return(dt); }