private int CompareSection(RemoteConfigSectionParam rcsp1, RemoteConfigSectionParam rcsp2)
 {
     if (rcsp1.MajorVersion == rcsp2.MajorVersion)
     {
         return(rcsp2.MinorVersion - rcsp1.MinorVersion);
     }
     return(rcsp2.MajorVersion - rcsp1.MajorVersion);
 }
Example #2
0
        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);
        }