Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id">插件ID</param>
        /// <param name="IsAdd">0表示升级。1为新赠,2为修改配置</param>
        /// <returns></returns>
        public ActionResult PluginWizard(string Vid, string IsAdd, string IsCate, string IsUpdate)
        {
            ViewData["Vid"]      = "";
            ViewData["IsUpdate"] = "";
            ViewData["type"]     = "";
            if (!string.IsNullOrEmpty(Vid))
            {
                ViewData["Vid"] = Vid;

                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = Vid.Split(',')[0];
                string     pid = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0].PluginCode.ToString();
                PluginInfo p   = BoFactory.GetVersionTrackBo.GetPluginInfo(pid);
                if (p.PluginCateCode.Equals(Constants.PluginCateCode))
                {
                    ViewData["type"] = "1";
                }
                else
                {
                    ViewData["type"] = "0";
                }
            }
            if (!string.IsNullOrEmpty(IsUpdate))
            {
                ViewData["IsUpdate"] = IsUpdate;
            }
            ViewData["IsAdd"]  = IsAdd;
            ViewData["IsCate"] = IsCate;
            return(View());
        }
Esempio n. 2
0
        public ActionResult PublishInfo(string Vid)
        {
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            SearchConfig searchc = new SearchConfig();

            searchc.PluginCode = Constants.UpdaterCode;
            IList <ConfigTemp> list = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);

            IList <ConfigInfo> listc = new List <ConfigInfo>();

            foreach (ConfigTemp c in list)
            {
                c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
                listc.Add(CommonMethods.ConvertToConfigInfo(c));
            }

            listc        = InitConfigs(listc);//初始化
            v.configList = listc;
            IEnumerable <IGrouping <string, ConfigInfo> > listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();

            listccc = listccc.OrderBy(T => T.Key);

            ViewData["keys"]       = listccc.First().Key;
            ViewData["lists"]      = listccc;
            ViewData["configList"] = v.configList.Count;

            return(View(v));
        }
Esempio n. 3
0
        public IList <VersionTrack> GetVersionTrackList(SearchVersionTrack search)
        {
            var    dic    = new Dictionary <string, string>();
            string Select = "select * from VersionTrack where 1=1 " + GetQueryCondition(search, dic) + " order by PluginCode asc ";

            return(Query(Select, dic));
        }
Esempio n. 4
0
        public ActionResult UpdateConfigInfo(string id)
        {
            ViewData["vid"] = id;
            IList <PluginInfo> plist = new List <PluginInfo>();

            ViewData["configList"] = 0;

            SearchVersionTrack searchv = new SearchVersionTrack();

            searchv.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            SearchConfig search = new SearchConfig();

            search.PluginCode         = Constants.UpdaterCode;
            search.ConfigCategoryCode = Constants.UpdaterConfig;
            IList <ConfigInfo> listconfigs = BoFactory.GetVersionTrackBo.GetConfigList(search);

            listconfigs  = InitConfigs(listconfigs);//初始化
            v.configList = listconfigs;

            IEnumerable <IGrouping <string, ConfigInfo> > listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();

            ViewData["keys"]       = listccc.First().Key;
            ViewData["lists"]      = listccc;
            ViewData["configList"] = v.configList.Count;

            return(View(v));
        }
Esempio n. 5
0
        public ActionResult UpdaterInfo(string IsUpdate, string IsAdd, string Vid, string AddVid)
        {
            ViewData["IsUpdate"] = "";
            ViewData["IsAdd"]    = IsAdd;
            ViewData["Vid"]      = Vid;
            VersionTrack v = new VersionTrack();

            if (!string.IsNullOrEmpty(IsUpdate))//若为修改
            {
                string id = "";
                if (AddVid.Equals("-1"))
                {
                    id = Vid;
                }
                else
                {
                    id = AddVid;
                }
                ViewData["IsUpdate"] = IsUpdate;
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = id;
                v          = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
            }
            return(View(v));
        }
Esempio n. 6
0
        public ActionResult DelVersions(string vid)
        {
            var vmobject = new JsonReturnMessages();

            try
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = vid;
                var       p   = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                ArrayList arr = new ArrayList();
                arr.Add(vid);
                if (p.VersionStatus == 2)
                {
                    BoFactory.GetVersionTrackBo.DelVersion(arr);
                    vmobject.IsSuccess = true;
                }
                else if (p.VersionStatus == 1)
                {
                    BoFactory.GetVersionTrackBo.DelActiveVersionByUpdater(arr);
                    vmobject.IsSuccess = true;
                }
                else
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg       = "不能删除未发布的版本,请先完成发布,或者删除整个升级程序!";
                }
            }
            catch (Exception e)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg       = e.Message;
            }

            return(Json(vmobject));
        }
        public ActionResult DelVersions(string vid)
        {
            var vmobject = new JsonReturnMessages();
            try
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = vid;
                var p = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                ArrayList arr = new ArrayList();
                arr.Add(vid);
                if (p.VersionStatus == 2)
                {
                    BoFactory.GetVersionTrackBo.DelVersion(arr);
                    vmobject.IsSuccess = true;
                }
                else if (p.VersionStatus == 1)
                {
                    BoFactory.GetVersionTrackBo.DelActiveVersionByUpdater(arr);
                    vmobject.IsSuccess = true;
                }
                else
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg = "����ɾ��δ�����İ汾,������ɷ���,����ɾ��������������";
                }
            }
            catch (Exception e)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = e.Message;
            }

            return Json(vmobject);
        }
Esempio n. 8
0
        /// <summary>
        /// 写入XML
        /// </summary>
        /// <param name="path"></param>
        private XmlConfigInfo InsertXml(string Vid)
        {
            XmlConfigInfo          xml     = new XmlConfigInfo();
            ArrayList              vids    = GetArray(Vid);//获得相关联的VID
            IList <PluginInfoTemp> list    = new List <PluginInfoTemp>();
            SearchVersionTrack     searchv = new SearchVersionTrack();
            VersionTrack           v       = null;
            SearchConfig           serach  = new SearchConfig();

            foreach (string vid in vids)
            {
                searchv.VID = vid;
                v           = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());
                serach.PluginCode = v.PluginCode.ToString();
                IList <ConfigTemp> listct = BoFactory.GetVersionTrackBo.GetConfigListTemp(serach);//获取配置信息

                IList <ConfigInfo> listc = new List <ConfigInfo>();
                foreach (ConfigTemp c in listct)
                {
                    listc.Add(CommonMethods.ConvertToConfigInfo(c));//转换
                }
                p.configList = listc;

                list.Add(p);
            }
            xml.PluginInfo = list;
            xml.PluginInfo = xml.PluginInfo.OrderBy(T => T.PluginCode).ToList();

            CommonMethods.WritePluginfoConfigXml(xml, Path.Combine(v.FilePath.Trim(), Constants.pluginName));

            return(xml);
        }
        public ActionResult GetDownLoadFile(FormCollection form)
        {
            var vmobject = new JsonReturnMessages();

            try
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = form["vid"].ToString();
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[] codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                string filename = Path.Combine(AppConfig.SaveZipPath, codes[codes.Length - 1] + ".zip");
                MemoryStream m = new MemoryStream(System.IO.File.ReadAllBytes(filename));
                DownLoadFile(m.ToArray(), v.PluginCode + v.VersionName + ".zip", m);

            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = ex.Message;
            }

            vmobject.IsSuccess = true;

            return Json(vmobject);
        }
Esempio n. 10
0
        public ActionResult ResumeVersions(string vid)
        {
            var vmobject = new JsonReturnMessages();

            try
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = vid;
                var p = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                if (p.VersionStatus != 2)
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg       = "当前为已发布的版本或者还未发布的,请选择过期版本!";
                }
                ArrayList arr = new ArrayList();
                arr.Add(vid);

                BoFactory.GetVersionTrackBo.ResumeExpiredVesionByUpdater(arr);
                vmobject.IsSuccess = true;
            }
            catch (Exception e)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg       = e.Message;
            }

            return(Json(vmobject));
        }
Esempio n. 11
0
        public ActionResult ViewPluginInfo(string id)
        {
            ViewData["Vid"] = id;
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            PluginInfo   p       = BoFactory.GetVersionTrackBo.GetPluginInfo(v.PluginCode);
            SearchConfig searchc = new SearchConfig();

            searchc.PluginCode = v.PluginCode;
            IList <ConfigInfo> list = BoFactory.GetVersionTrackBo.GetConfigList(searchc);

            //转换
            foreach (ConfigInfo c in list)
            {
                c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
            }
            p.configList     = list;
            p.VersionSummary = v.VersionSummary;

            SearchPlugin sh = new SearchPlugin();

            sh.PluginCateCode = p.PluginCateCode;
            p.PCname          = BoFactory.GetVersionTrackBo.GetPluginCategoryInfos(sh)[0].DisplayName;

            return(View(p));
        }
Esempio n. 12
0
        public ActionResult PublishInfo(string Vid) //vid一定是上一个版本的vid
        {
            ArrayList vids = GetArray(Vid);         //获得相关联的VID

            IList <PluginInfoTemp> listtemp = new List <PluginInfoTemp>();

            foreach (string vid in vids)
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack   v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());

                SearchConfig searchc = new SearchConfig();
                searchc.PluginCode = p.PluginCode.ToString();
                IList <ConfigTemp> list = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);

                IList <ConfigInfo> listc = new List <ConfigInfo>();
                foreach (ConfigTemp c in list)
                {
                    c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
                    listc.Add(CommonMethods.ConvertToConfigInfo(c));
                }
                p.configList = listc;

                listtemp.Add(p);
            }
            ViewData["vids"] = Vid;
            return(View(listtemp));
        }
Esempio n. 13
0
        public ActionResult UpdatePluginInfo(string Vid, string IsAdd)
        {
            ViewData["configList"] = 0;
            ViewData["IsAdd"]      = IsAdd;
            SearchVersionTrack     search = new SearchVersionTrack();
            IList <PluginInfoTemp> plist  = new List <PluginInfoTemp>();

            ArrayList arrVid = GetArray(Vid);//获得相关联的VID

            foreach (string vid in arrVid)
            {
                search.VID = vid;
                VersionTrack   v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());

                if (p.IsIgnoreConfig == false)//若不忽略配置信息
                {
                    SearchConfig searchc = new SearchConfig();
                    searchc.PluginCode         = v.PluginCode.ToString();
                    searchc.ConfigCategoryCode = Constants.configCategory;
                    IList <ConfigInfo> list = BoFactory.GetVersionTrackBo.GetConfigList(searchc);//获取原有参数

                    Dictionary <string, ConfigInfo> dic = new Dictionary <string, ConfigInfo>();
                    foreach (var item in list)
                    {
                        var        key  = item.Key1 + "_FG$SP_" + item.PluginCode;
                        ConfigInfo temp = new ConfigInfo();
                        temp.Key1     = item.Key1;
                        temp.OldValue = item.Value1;
                        dic.Add(key, temp);
                    }
                    IList <ConfigTemp> listT = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);//现有临时表数据
                    foreach (var item in listT)
                    {
                        var key = item.Key1 + "_FG$SP_" + item.PluginCode;
                        if (dic.ContainsKey(key))
                        {
                            dic[key].Value1 = item.Value1;
                        }
                        else
                        {
                            ConfigInfo temp = new ConfigInfo();
                            temp.Key1     = item.Key1;
                            temp.Value1   = item.Value1;
                            temp.OldValue = "";
                            dic.Add(key, temp);
                        }
                    }
                    p.configList           = dic.Values.ToList <ConfigInfo>();
                    ViewData["configList"] = (int)ViewData["configList"] + p.configList.Count;

                    SearchPlugin sh = new SearchPlugin();
                    sh.PluginCateCode = p.PluginCateCode;
                    p.PCname          = BoFactory.GetVersionTrackBo.GetPluginCategoryInfos(sh)[0].DisplayName;
                }
                plist.Add(p);
            }
            return(View(plist));
        }
Esempio n. 14
0
        public ActionResult UpdatePluginConfig(string id)
        {
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID        = id;
            ViewData["pId"]   = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0].PluginCode.ToString();
            ViewData["verid"] = id;//版本ID
            return(View());
        }
Esempio n. 15
0
        public ActionResult PublishInfo(string id)
        {
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID = id;
            VersionTrack ver = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            return(View(ver));
        }
Esempio n. 16
0
        private string GetQueryCondition(SearchVersionTrack search)
        {
            StringBuilder strsql = new StringBuilder();

            if (!string.IsNullOrEmpty(search.VID))
            {
                strsql.Append(" and VersionId=" + search.VID);
            }

            //排除多个不满足条件的pluginId
            if (!string.IsNullOrEmpty(search.NotPluginId))//排除主程序
            {
                strsql.Append(" and PluginCode !=" + search.NotPluginId);
            }
            if (!string.IsNullOrEmpty(search.NotPluginIdForCategory))//排除web插件
            {
                string[] arr = search.NotPluginIdForCategory.Split(',');
                foreach (string a in arr)
                {
                    strsql.Append(" and PluginCode !=" + a);
                }
            }

            //满足多个pluginId
            if (!string.IsNullOrEmpty(search.InPluginIdForCategory))//排除web插件
            {
                string[] arr = search.InPluginIdForCategory.Split(',');
                int      i   = 0;
                foreach (string a in arr)
                {
                    if (i == 0)
                    {
                        strsql.Append(" and PluginCode =" + a);
                    }
                    else
                    {
                        strsql.Append(" or PluginCode =" + a);
                    }
                    i++;
                }
            }

            if (!string.IsNullOrEmpty(search.PluginCode))
            {
                strsql.Append(" and PluginCode='" + search.PluginCode + "'");
            }
            if (!string.IsNullOrEmpty(search.VersionStatus))
            {
                strsql.Append(" and VersionStatus=" + search.VersionStatus);
            }
            if (!string.IsNullOrEmpty(search.VersionName))
            {
                strsql.Append(" and VersionName=" + search.VersionStatus);
            }

            return(strsql.ToString());
        }
Esempio n. 17
0
        public ActionResult UpdateConfigInfo(string id)
        {
            string type = Request.QueryString["type"];

            ViewData["vid"] = id;
            IList <PluginInfo> plist = new List <PluginInfo>();

            ViewData["configList"] = 0;

            SearchVersionTrack searchv = new SearchVersionTrack();

            searchv.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            SearchConfig search = new SearchConfig();

            search.PluginCode = Constants.MianName;

            if (type == "pc")
            {
                search.ConfigCategoryCode = Constants.SystemConfig; //Constants.PCGlobalConfig;
            }
            else if (type == "mobile")
            {
                search.ConfigCategoryCode = Constants.SystemConfig + "," + Constants.AppNameConfig + "," + Constants.GlobalConfig;
            }
            //search.ConfigCategoryCode = Constants.PCGlobalConfig + "," + Constants.SystemConfig + "," + Constants.AppNameConfig + "," + Constants.GlobalConfig;
            IList <ConfigInfo> listconfigs = null;

            switch (type)
            {
            case "pc":
                listconfigs = BoFactory.GetVersionTrackBo.GetPCConfigList(search);
                break;

            case "mobile":
                listconfigs = BoFactory.GetVersionTrackBo.GetMobileConfigList(search);
                break;
            }


            //if (type == "mobile")
            if (listconfigs == null || listconfigs.Count == 0)
            {
                listconfigs = InitConfigs(listconfigs);//初始化
            }
            v.configList = listconfigs;

            IEnumerable <IGrouping <string, ConfigInfo> > listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();

            ViewData["keys"]       = listccc.First().Key;
            ViewData["lists"]      = listccc;
            ViewData["configList"] = v.configList.Count;

            return(View(v));
        }
Esempio n. 18
0
        public JsonResult GetVersionTrackList(FormCollection form)
        {
            JsonFlexiGridData  data   = null;
            PageView           view   = new PageView(form);
            SearchVersionTrack search = new SearchVersionTrack();

            search.PluginCode = Common.Entities.Constants.MianPluginId.ToString();
            data = BoFactory.GetVersionTrackBo.QueryVersionTrackInfo(view, search);
            return(Json(data));
        }
Esempio n. 19
0
        public ActionResult GetVersionTrackList(FormCollection form, string id)
        {
            JsonFlexiGridData  data   = null;
            PageView           view   = new PageView(form);
            SearchVersionTrack search = new SearchVersionTrack();

            search.PluginCode = id;
            data = BoFactory.GetVersionTrackBo.QueryVersionTrackInfo(view, search);
            return(Json(data));
        }
Esempio n. 20
0
        public ActionResult SaveFileInfo(VersionTrack ver, string IsAdd, string IsUpdate, FormCollection form)
        {
            var               vmobject = new JsonReturnMessages();
            string            vid      = form["VersionIds"].ToString();
            XmlMainConfigInfo xmlInfo  = null;

            try
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                if (Request.Files.Count > 0)                //若有上传文件
                {
                    xmlInfo = Decompressing(v.VersionName); //解压
                }
                vid = BoFactory.GetVersionTrackBo.SaveUpdaterZipInfo(ver, xmlInfo, IsAdd, IsUpdate, base.CurrentUser.UserUId, form["VersionIds"].ToString());

                if (Request.Files.Count > 0)            //若有上传文件
                {
                    MoveFolder(xmlInfo, v.VersionName); //移动文件夹及文件
                }
            }
            catch (Exception ex)
            {
                try
                {
                    string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName;
                    while (Directory.Exists(thisFilePath))//先删除原由临时文件夹
                    {
                        Directory.Delete(thisFilePath, true);
                    }
                    if (!string.IsNullOrEmpty(xmlInfo.savefile))
                    {
                        FileInfo f = new FileInfo(xmlInfo.savefile);//删除原本保存的zip
                        if (f.Exists)
                        {
                            f.Delete();
                        }
                    }
                }
                catch (Exception fe)
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg       = fe.Message;
                }

                vmobject.IsSuccess = false;
                vmobject.Msg       = vmobject.Msg + "," + ex.Message;
                return(Json(vmobject, "text/html"));
            }

            vmobject.Msg       = vid;
            vmobject.IsSuccess = true;
            return(Json(vmobject, "text/html"));
        }
Esempio n. 21
0
        public ActionResult UpdatePluginInfo(string verid, string isAdd)
        {
            PluginInfo pinfo = null;

            ViewData["vername"]    = "";
            ViewData["actionCode"] = "";
            ViewData["summary"]    = "";
            ViewData["versionId"]  = "";
            ViewData["isAdd"]      = "";//是否升级

            IResourceData[] datas = new IResourceData[1];
            datas[0]         = ResourceDataFactory.GetResourceDataInstance();
            datas[0].Code    = "WebPlugin";
            datas[0].Name    = "Web页面插件";
            ViewData["list"] = datas;

            if (string.IsNullOrEmpty(verid))//若为新增
            {
                pinfo = new PluginInfo();
            }
            else
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = verid;
                VersionTrack vsion = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];    //获取版本信息

                pinfo = BoFactory.GetVersionTrackBo.GetPluginInfo(vsion.PluginCode.ToString()); //获取插件信息

                if (isAdd.Equals("0"))                                                          //若为修改(可修改版本信息,扩展信息,插件信息)
                {
                    ViewData["vername"] = vsion.VersionName;                                    //获取版本信息

                    SearchConfig searchconfig = new SearchConfig();
                    searchconfig.PluginCode = vsion.PluginCode.ToString();
                    IList <ActionExtend> listAction = BoFactory.GetVersionTrackBo.QueryActionExtend(searchconfig);//获取扩展信息
                    if (listAction.Count > 0)
                    {
                        ViewData["actionCode"] = listAction[0].ActionCode;
                        ViewData["summary"]    = listAction[0].Summary;
                    }
                }
                else//(只可修改插件信息)
                {
                }
                ViewData["versionId"] = verid;
            }
            if (!string.IsNullOrEmpty(isAdd))
            {
                ViewData["isAdd"] = isAdd;
            }

            return(View(pinfo));
        }
Esempio n. 22
0
        public ActionResult PublishInfo(string id, string IsLoadFile)
        {
            ViewData["IsLoadFile"] = "";
            if (!string.IsNullOrEmpty(IsLoadFile))
            {
                ViewData["IsLoadFile"] = IsLoadFile;//是否单个上传文件
            }
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID = id;
            VersionTrack ver = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            return(View(ver));
        }
Esempio n. 23
0
        private string GetQueryConditions(SearchVersionTrack search)
        {
            StringBuilder strsql = new StringBuilder();

            if (!string.IsNullOrEmpty(search.UserUid))
            {
                strsql.Append(" and userinfo.UserUid='" + search.UserUid + "'");
            }
            if (!string.IsNullOrEmpty(search.UserName))
            {
                strsql.AppendFormat(" and ( UPPER(userinfo.UserName) like '{0}%' or userinfo.UserUid like '{0}%' ) ", search.UserName);
            }
            return(strsql.ToString());
        }
Esempio n. 24
0
        public ActionResult UpdatePluginInfo(string verid)
        {
            ViewData["actionCode"] = "";
            ViewData["summary"]    = "";
            ViewData["IsAction"]   = "";
            SearchVersionTrack search = new SearchVersionTrack();

            search.VID = verid;
            VersionTrack version = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];               //获取插件ID

            PluginInfo pinfo = BoFactory.GetVersionTrackBo.GetPluginInfo(version.PluginCode.ToString()); //获取插件信息

            if (pinfo.PluginCateCode.Equals(Constants.ActionCateCode))
            {
                ViewData["IsAction"] = "1";
            }

            IList <PluginCategory> list = BoFactory.GetVersionTrackBo.GetPluginCategoryInfo();//获取非web插件的分类信息

            if (list != null)
            {
                if (list.Count > 0)
                {
                    IResourceData[] datas = new IResourceData[list.Count];
                    for (int i = 0; i < list.Count; i++)
                    {
                        datas[i]      = ResourceDataFactory.GetResourceDataInstance();
                        datas[i].Code = list[i].PluginCateCode;
                        datas[i].Name = list[i].DisplayName;
                    }
                    ViewData["list"] = datas;
                }
            }

            SearchConfig searchconfig = new SearchConfig();

            searchconfig.PluginCode = version.PluginCode.ToString();
            IList <ActionExtend> listAction = BoFactory.GetVersionTrackBo.QueryActionExtend(searchconfig);//获取扩展信息

            if (listAction.Count > 0)
            {
                ViewData["actionCode"] = listAction[0].ActionCode;
                ViewData["summary"]    = listAction[0].Summary;
            }

            ViewData["versionId"] = verid;
            ViewData["vername"]   = version.VersionName;

            return(View(pinfo));
        }
Esempio n. 25
0
        public ActionResult SaveConfigInfo(FormCollection form, string Vid)
        {
            var vmobject = new JsonReturnMessages();

            try
            {
                IList <ConfigInfo> list = new List <ConfigInfo>();
                string[]           keys = form.AllKeys;
                for (int i = 0; i < keys.Length; i++)
                {
                    if (keys[i].EndsWith(".Key1"))
                    {
                        ConfigInfo config = new ConfigInfo();
                        string     prefix = keys[i].Split('.')[0];
                        UpdateModel(config, prefix);  //其他数据同时可以获得填充进实体对象
                        config.PluginCode = Constants.UpdaterCode;
                        list.Add(config);
                    }
                }
                //更新
                BoFactory.GetVersionTrackBo.UpdateUpdaterConfigInfos(list); //发布

                InsertConfigXml(Vid);                                       //生成config

                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = Vid;
                VersionTrack v     = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[]     codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                string       name  = codes[codes.Length - 2];//获取插件code

                Beyondbit.AutoUpdate.IPublisher pub = new Beyondbit.SmartBox.Publisher.SmartBoxPublisher();
                if (Directory.Exists(Path.Combine(AppConfig.pubFolder, name + AppConfig.subFix)))//如果存在次文件夹
                {
                    pub.UpdateApplication(v.FilePath, name);
                }
                else
                {
                    pub.CreateApplication(v.FilePath, name);
                }

                vmobject.IsSuccess = true;
                vmobject.Msg       = "操作成功";
            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg       = ex.Message;
            }
            return(Json(vmobject));
        }
Esempio n. 26
0
        //第一步。获得版本列表
        public ActionResult ProgramList()
        {
            SearchVersionTrack search = new SearchVersionTrack();

            search.PluginCode    = Common.Entities.Constants.MianPluginId.ToString();
            search.VersionStatus = "0";
            IList <VersionTrack> list = BoFactory.GetVersionTrackBo.GetVersionTrack(search);//获取未发布的版本信息

            ViewData["versionId"] = "";
            if (list.Count > 0)
            {
                ViewData["versionId"] = list[0].VersionId;//为提供页面判断需要进行修改还是重新上传
            }
            return(View());
        }
Esempio n. 27
0
        /// <summary>
        /// 解压、获取信息
        /// </summary>
        /// <returns></returns>
        private XmlConfigInfo Decompressing(string vid, string isAdd)
        {
            string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName;

            while (!Directory.Exists(thisFilePath))//创建临时文件夹
            {
                Directory.CreateDirectory(thisFilePath);
            }
            string zipPaht = AppConfig.SaveZipPath;

            while (!Directory.Exists(zipPaht))//创建存放zip文件的文件夹
            {
                Directory.CreateDirectory(zipPaht);
            }

            string saveFile = Path.Combine(zipPaht, System.Guid.NewGuid().ToString() + ".zip");

            Request.Files[0].SaveAs(saveFile);                //保存zip去文件夹下

            CommonMethods.Uncompress(saveFile, thisFilePath); //解压

            XmlConfigInfo xmlInfo = new XmlConfigInfo();

            xmlInfo.savefile = saveFile;

            xmlInfo = GetXmlInfo(thisFilePath);//获取解析出来的配置信息
            //若升级,以原由CODE文件夹+第一个插件版本名命
            if (isAdd.Equals("0"))
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack v     = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[]     codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                xmlInfo.oldCode = codes[codes.Length - 2];
            }
            else
            {
                xmlInfo.oldCode = xmlInfo.PluginInfo[0].PluginCode;//否则以第一个排序后的CODE为文件夹
            }
            //zip文件有第一个CODE+版本号命名
            string oldfilepath = Path.Combine(zipPaht, xmlInfo.PluginInfo[0].PluginCode + "_FG$SP_" + xmlInfo.PluginInfo[0].Version + ".zip");//重命名的zip文件

            xmlInfo.savefile = saveFile;
            xmlInfo.oldfile  = oldfilepath;

            return(xmlInfo);
        }
Esempio n. 28
0
        public ActionResult Publishs(VersionTrack ver, string IsLoadFile)
        {
            var vmobject = new JsonReturnMessages();

            try
            {
                //1。写入XML
                InsertXml(ver.FilePath);
                Beyondbit.AutoUpdate.IPublisher pub = new Beyondbit.SmartBox.Publisher.SmartBoxPublisher();
                if (!string.IsNullOrEmpty(IsLoadFile))//若为单个上传文件发布
                {
                    //读去ver.FilePath发布单个文件
                    pub.UpdateFile(ver.FilePath + @"\" + Common.Entities.Constants.globalName, Constants.MianName, "./");
                    pub.UpdateFile(ver.FilePath + @"\" + Common.Entities.Constants.systemName, Constants.MianName, "./");
                }
                else
                {
                    //2。发布
                    SearchVersionTrack search = new SearchVersionTrack();
                    search.VID = ver.PreVersionId.ToString(); //获取上一个版本。
                    IList <VersionTrack> list = BoFactory.GetVersionTrackBo.GetVersionTrack(search);
                    if (list.Count > 0)                       //若不存在此记录说明是第一次发布
                    {
                        pub.UpdateApplication(ver.FilePath, Common.Entities.Constants.MianName);
                    }
                    else
                    {
                        pub.CreateApplication(ver.FilePath, Common.Entities.Constants.MianName);
                    }

                    //3。更新
                    ver.LastModTime   = DateTime.Now;
                    ver.LastModUid    = base.CurrentUser.UserUId;
                    ver.VersionStatus = 1;
                    BoFactory.GetVersionTrackBo.UpdatePlushVersionTrack(ver);
                }
                vmobject.IsSuccess = true;
                vmobject.Msg       = "操作成功!";
            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg       = ex.Message;
            }
            return(Json(vmobject));
        }
Esempio n. 29
0
        public ActionResult GetPluginNames(string vid)
        {
            var       vmobject = new JsonReturnMessages();
            ArrayList arr      = GetArrays(vid);
            string    status   = "";

            foreach (string a in arr)
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = a;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                vmobject.Msg += v.PluginCode + ",";
                status        = v.VersionStatus.ToString();
            }
            vmobject.IsSuccess = true;
            vmobject.Msg       = vmobject.Msg.Substring(0, vmobject.Msg.Length - 1) + "|" + status;
            return(Json(vmobject));
        }
Esempio n. 30
0
        public JsonFlexiGridData QueryVersionTrackInfo(PageView view, SearchVersionTrack search)
        {
            string Selectcolumns = "VersionName,VersionSummary,VersionStatus,CreateUid,CreateTime,cast(VersionStatus as varchar(2))  as VersionStatus1,VersionId";
            string sqlorder;

            if (string.IsNullOrEmpty(view.OrderBy.ToString()))
            {
                sqlorder = " Order by  CreateTime asc ";
            }
            else
            {
                sqlorder = view.OrderBy.ToString();
            }
            var    dic  = new Dictionary <string, string>();
            string parm = GetQueryCondition(search);

            return(base.QueryDataForFlexGridByPager(Selectcolumns, "VersionTrack", sqlorder, "VersionId", parm, view));
        }
Esempio n. 31
0
        /// <summary>
        /// 写入XML
        /// </summary>
        /// <param name="path"></param>
        private XmlMainConfigInfo InsertConfigXml(string Vid)
        {
            XmlMainConfigInfo  xml     = new XmlMainConfigInfo();
            SearchVersionTrack searchv = new SearchVersionTrack();
            SearchConfig       serach  = new SearchConfig();

            searchv.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            serach.PluginCode = v.PluginCode.ToString();
            IList <ConfigInfoPC> listc = BoFactory.GetVersionTrackBo.GetConfigPCList(serach);//获取配置信息

            xml.configList = listc;

            CommonMethods.WriteMaininfoConfigXml(listc, Path.Combine(v.FilePath.Trim(), Constants.UpdaterName));

            return(xml);
        }
Esempio n. 32
0
        public JsonFlexiGridData QueryUserInfoNotByPId(SearchConfig search, SearchVersionTrack search1, PageView view)
        {
            string Selectcolumns = "UserUId,Gender,UserName";
            string sqlorder;
            string table = @" (select userinfo.* from userinfo left join (select b.*  from userpluginref as c ,userinfo as b 
                            where  c.useruid=b.useruid " + GetQueryCondition(search) + @") as d
                            on d.useruid=userinfo.useruid  where d.useruid is null " + GetQueryConditions(search1) + ") as temp ";

            if (string.IsNullOrEmpty(view.OrderBy.ToString()))
            {
                sqlorder = " Order by  CreateTime asc ";
            }
            else
            {
                sqlorder = view.OrderBy.ToString();
            }

            return(base.QueryDataForFlexGridByPager(Selectcolumns, table, sqlorder, "UserUId", "", view));
        }
        public ActionResult DelAllVersions()
        {
            var vmobject = new JsonReturnMessages();
            try
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.PluginCode = Constants.UpdaterCode;
                var p = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                ArrayList arr = new ArrayList();
                arr.Add(p.VersionId.ToString());
                BoFactory.GetVersionTrackBo.DelAllVersionByMain(arr);
                vmobject.IsSuccess = true;
            }
            catch (Exception e)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = e.Message;
            }

            return Json(vmobject);
        }
        /// <summary>
        /// ��ѹ����ȡ��Ϣ
        /// </summary>
        /// <returns></returns>
        private XmlConfigInfo Decompressing(string vid,string isAdd)
        {
            string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName;
            while (!Directory.Exists(thisFilePath))//������ʱ�ļ���
            {
                Directory.CreateDirectory(thisFilePath);
            }
            string zipPaht = AppConfig.SaveZipPath;
            while (!Directory.Exists(zipPaht))//�������zip�ļ����ļ���
            {
                Directory.CreateDirectory(zipPaht);
            }

            string saveFile = Path.Combine(zipPaht, System.Guid.NewGuid().ToString() + ".zip");
            Request.Files[0].SaveAs(saveFile);//����zipȥ�ļ�����

            CommonMethods.Uncompress(saveFile, thisFilePath);//��ѹ

            XmlConfigInfo xmlInfo = new XmlConfigInfo();
            xmlInfo.savefile = saveFile;

            xmlInfo = GetXmlInfo(thisFilePath);//��ȡ����������������Ϣ
            //����������ԭ��CODE�ļ���+��һ������汾����
            if (isAdd.Equals("0"))
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[] codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                xmlInfo.oldCode = codes[codes.Length - 2];
            }
            else
                xmlInfo.oldCode = xmlInfo.PluginInfo[0].PluginCode;//�����Ե�һ��������CODEΪ�ļ���
            //zip�ļ��е�һ��CODE+�汾������
            string oldfilepath = Path.Combine(zipPaht, xmlInfo.PluginInfo[0].PluginCode + "_FG$SP_" + xmlInfo.PluginInfo[0].Version + ".zip");//��������zip�ļ�
            xmlInfo.savefile = saveFile;
            xmlInfo.oldfile = oldfilepath;

            return xmlInfo;
        }
        //vidһ������һ���汾��vid
        public ActionResult PublishInfo(string Vid)
        {
            ArrayList vids = GetArray(Vid);//����������VID

            IList<PluginInfoTemp> listtemp = new List<PluginInfoTemp>();
            foreach (string vid in vids)
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());

                SearchConfig searchc = new SearchConfig();
                searchc.PluginCode = p.PluginCode.ToString();
                IList<ConfigTemp> list = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);

                IList<ConfigInfo> listc = new List<ConfigInfo>();
                foreach (ConfigTemp c in list)
                {
                    c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
                    listc.Add(CommonMethods.ConvertToConfigInfo(c));
                }
                p.configList = listc;

                listtemp.Add(p);
            }
            ViewData["vids"] = Vid;
            return View(listtemp);
        }
        /// <summary>
        /// �XML
        /// </summary>
        /// <param name="path"></param>
        private XmlMainConfigInfo InsertXml(string Vid)
        {
            XmlMainConfigInfo xml = new XmlMainConfigInfo();
            SearchVersionTrack searchv = new SearchVersionTrack();
            SearchConfig serach = new SearchConfig();

            searchv.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            serach.PluginCode = v.PluginCode.ToString();
            IList<ConfigTemp> listct = BoFactory.GetVersionTrackBo.GetConfigListTemp(serach);//��ȡ������Ϣ

            IList<ConfigInfoPC> listc = new List<ConfigInfoPC>();
            foreach (ConfigTemp c in listct)
            {
                listc.Add(CommonMethods.ConvertToConfigInfoPC(c));//ת��
            }
            xml.configList = listc;

            CommonMethods.WriteMaininfoConfigXml(listc, Path.Combine(v.FilePath.Trim() , Constants.UpdaterName));

            return xml;
        }
        /// <summary>
        /// �XML
        /// </summary>
        /// <param name="path"></param>
        private XmlMainConfigInfo InsertConfigXml(string Vid)
        {
            XmlMainConfigInfo xml = new XmlMainConfigInfo();
            SearchVersionTrack searchv = new SearchVersionTrack();
            SearchConfig serach = new SearchConfig();

            searchv.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            serach.PluginCode = v.PluginCode.ToString();
            IList<ConfigInfoPC> listc = BoFactory.GetVersionTrackBo.GetConfigPCList(serach);//��ȡ������Ϣ

            xml.configList = listc;

            CommonMethods.WriteMaininfoConfigXml(listc, Path.Combine(v.FilePath.Trim(), Constants.UpdaterName));

            return xml;
        }
 public ActionResult UpdaterInfo(string IsUpdate, string IsAdd, string Vid, string AddVid)
 {
     ViewData["IsUpdate"] = "";
     ViewData["IsAdd"] = IsAdd;
     ViewData["Vid"] = Vid;
     VersionTrack v = new VersionTrack();
     if (!string.IsNullOrEmpty(IsUpdate))//��Ϊ�޸�
     {
         string id = "";
         if (AddVid.Equals("-1"))
             id = Vid;
         else
             id = AddVid;
         ViewData["IsUpdate"] = IsUpdate;
         SearchVersionTrack search = new SearchVersionTrack();
         search.VID = id;
         v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
     }
     return View(v);
 }
        public ActionResult SaveVerInfo(VersionTrack ver, string IsAdd, string IsUpdate, FormCollection form, string PluginCateCode)
        {
            var vmobject = new JsonReturnMessages();
            string vid = "";
            XmlConfigInfo xmlInfo = null;

            try
            {
                if (Request.Files.Count > 0)//�����ϴ��ļ�
                    xmlInfo = Decompressing(form["VersionIds"].ToString(), IsAdd);//��ѹ
                else
                {
                    IList<PluginInfoTemp> listp = new List<PluginInfoTemp>();
                    PluginInfoTemp p = new PluginInfoTemp();
                    p.Version = form["VersionName"];
                    p.PluginUrl = form["PluginUrl"];
                    p.PluginCode = form["PluginCode"];
                    listp.Add(p);
                    xmlInfo = new XmlConfigInfo();
                    xmlInfo.PluginInfo = listp;
                }
                if (PluginCateCode.Equals("1"))//��Ϊweb���
                {
                    xmlInfo.PluginInfo[0].PluginCateCode = Constants.PluginCateCode;
                    xmlInfo.oldCode = xmlInfo.PluginInfo[0].PluginCode;
                }
                foreach (PluginInfoTemp ps in xmlInfo.PluginInfo)
                {
                    ps.IsPublic = true;
                    ps.IsIgnoreConfig = Convert.ToBoolean(form["ck"]);
                }

                vid = BoFactory.GetVersionTrackBo.SavePluingZipInfo(ver, xmlInfo, IsAdd, IsUpdate, base.CurrentUser.UserUId, form["VersionIds"].ToString());

                if (Request.Files.Count > 0)//�����ϴ��ļ�
                    MoveFolder(xmlInfo);//�ƶ��ļ��м��ļ�
            }
            catch (Exception ex)
            {
                try
                {
                    string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName;
                    while (Directory.Exists(thisFilePath))//��ɾ��ԭ����ʱ�ļ���
                    {
                        Directory.Delete(thisFilePath, true);
                    }
                    if (!string.IsNullOrEmpty(xmlInfo.savefile))
                    {
                        FileInfo f = new FileInfo(xmlInfo.savefile);//ɾ��ԭ�������zip
                        if (f.Exists)
                            f.Delete();
                    }
                }
                catch (Exception fe)
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg = fe.Message;
                }

                vmobject.IsSuccess = false;
                vmobject.Msg = vmobject.Msg + "," + ex.Message;
                return Json(vmobject, "text/html");
            }
            //��ȡ��һ���汾����
            SearchVersionTrack sea = new SearchVersionTrack();
            sea.VID = vid;
            VersionTrack vt = BoFactory.GetVersionTrackBo.GetVersionTrack(sea)[0];
            if (vt != null)
            {
                if (vt.PreVersionId != 0)
                    vid = vt.PreVersionId.ToString();
            }

            vmobject.Msg = vid;
            vmobject.IsSuccess = true;
            return Json(vmobject, "text/html");
        }
 public ActionResult GetPluginNames(string vid)
 {
     var vmobject = new JsonReturnMessages();
     ArrayList arr = GetArrays(vid);
     string status = "";
     foreach (string a in arr)
     {
         SearchVersionTrack searchv = new SearchVersionTrack();
         searchv.VID = a;
         VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
         vmobject.Msg += v.PluginCode + ",";
         status = v.VersionStatus.ToString();
     }
     vmobject.IsSuccess = true;
     vmobject.Msg = vmobject.Msg.Substring(0, vmobject.Msg.Length - 1) + "|" + status;
     return Json(vmobject);
 }
        /// <summary>
        /// �XML
        /// </summary>
        /// <param name="path"></param>
        private XmlConfigInfo InsertXml(string Vid)
        {
            XmlConfigInfo xml = new XmlConfigInfo();
            ArrayList vids = GetArray(Vid);//����������VID
            IList<PluginInfoTemp> list = new List<PluginInfoTemp>();
            SearchVersionTrack searchv = new SearchVersionTrack();
            VersionTrack v = null;
            SearchConfig serach = new SearchConfig();
            foreach (string vid in vids)
            {
                searchv.VID = vid;
                v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());
                serach.PluginCode = v.PluginCode.ToString();
                IList<ConfigTemp> listct = BoFactory.GetVersionTrackBo.GetConfigListTemp(serach);//��ȡ������Ϣ

                IList<ConfigInfo> listc = new List<ConfigInfo>();
                foreach (ConfigTemp c in listct)
                {
                    listc.Add(CommonMethods.ConvertToConfigInfo(c));//ת��
                }
                p.configList = listc;

                list.Add(p);
            }
            xml.PluginInfo = list;
            xml.PluginInfo = xml.PluginInfo.OrderBy(T => T.PluginCode).ToList();

            CommonMethods.WritePluginfoConfigXml(xml, Path.Combine(v.FilePath.Trim(), Constants.pluginName));

            return xml;
        }
        /// <summary>
        /// �XML
        /// </summary>
        /// <param name="path"></param>
        private XmlMainConfigInfo InsertXml(string Vid)
        {
            XmlMainConfigInfo xml = new XmlMainConfigInfo();
            SearchVersionTrack searchv = new SearchVersionTrack();
            SearchConfig serach = new SearchConfig();

            searchv.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            serach.PluginCode = v.PluginCode.ToString();
            IList<ConfigTemp> listct = BoFactory.GetVersionTrackBo.GetConfigListTemp(serach);//��ȡ������Ϣ

            IList<ConfigInfoPC> listc = new List<ConfigInfoPC>();
            foreach (ConfigTemp c in listct)
            {
                listc.Add(CommonMethods.ConvertToConfigInfoPC(c));//ת��
            }
            xml.configList = listc;

            //����
            IList<ConfigInfoPC> listA = new List<ConfigInfoPC>();
            IList<ConfigInfoPC> listS = new List<ConfigInfoPC>();
            IList<ConfigInfoPC> listG = new List<ConfigInfoPC>();
            foreach (var config in listc)
            {
                if (config.ConfigCategoryCode.Equals(Constants.SystemConfig))
                    listS.Add(config);
                else if (config.ConfigCategoryCode.Equals(Constants.GlobalConfig))
                    listG.Add(config);
                else
                    listA.Add(config);
            }

            CommonMethods.WriteMaininfoConfigXml(listA, Path.Combine(v.FilePath.Trim(), Constants.AppName));
            CommonMethods.WriteMaininfoConfigXml(listS, Path.Combine(v.FilePath.Trim(), Constants.systemName));
            CommonMethods.WriteMaininfoConfigXml(listG, Path.Combine(v.FilePath.Trim(), Constants.globalName));

            return xml;
        }
        public ActionResult SaveFileInfo(VersionTrack ver, string IsAdd, string IsUpdate, FormCollection form)
        {
            var vmobject = new JsonReturnMessages();
            string vid = form["VersionIds"].ToString();
            XmlMainConfigInfo xmlInfo = null;

            try
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                if (Request.Files.Count > 0)//�����ϴ��ļ�
                    xmlInfo = Decompressing(v.VersionName);//��ѹ

                vid = BoFactory.GetVersionTrackBo.SaveUpdaterZipInfo(ver, xmlInfo, IsAdd, IsUpdate, base.CurrentUser.UserUId, form["VersionIds"].ToString());

                if (Request.Files.Count > 0)//�����ϴ��ļ�
                    MoveFolder(xmlInfo, v.VersionName);//�ƶ��ļ��м��ļ�
            }
            catch (Exception ex)
            {
                try
                {
                    string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName;
                    while (Directory.Exists(thisFilePath))//��ɾ��ԭ����ʱ�ļ���
                    {
                        Directory.Delete(thisFilePath, true);
                    }
                    if (!string.IsNullOrEmpty(xmlInfo.savefile))
                    {
                        FileInfo f = new FileInfo(xmlInfo.savefile);//ɾ��ԭ�������zip
                        if (f.Exists)
                            f.Delete();
                    }
                }
                catch (Exception fe)
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg = fe.Message;
                }

                vmobject.IsSuccess = false;
                vmobject.Msg = vmobject.Msg + "," + ex.Message;
                return Json(vmobject, "text/html");
            }

            vmobject.Msg = vid;
            vmobject.IsSuccess = true;
            return Json(vmobject, "text/html");
        }
        public ActionResult SaveConfigInfo(FormCollection form, string Vid)
        {
            var vmobject = new JsonReturnMessages();
            try
            {
                IList<ConfigInfo> list = new List<ConfigInfo>();
                string[] keys = form.AllKeys;
                for (int i = 0; i < keys.Length; i++)
                {
                    if (keys[i].EndsWith(".Key1"))
                    {
                        ConfigInfo config = new ConfigInfo();
                        string prefix = keys[i].Split('.')[0];
                        UpdateModel(config, prefix);  //��������ͬʱ���Ի������ʵ�����
                        config.PluginCode = Constants.UpdaterCode;
                        list.Add(config);
                    }
                }
                //����
                BoFactory.GetVersionTrackBo.UpdateUpdaterConfigInfos(list);//����

                InsertConfigXml(Vid);//����config

                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = Vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[] codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                string name = codes[codes.Length - 2];//��ȡ���code

                Beyondbit.AutoUpdate.IPublisher pub = new Beyondbit.SmartBox.Publisher.SmartBoxPublisher();
                if (Directory.Exists(Path.Combine(AppConfig.pubFolder, name + AppConfig.subFix)))//������ڴ��ļ���
                    pub.UpdateApplication(v.FilePath, name);
                else
                    pub.CreateApplication(v.FilePath, name);

                vmobject.IsSuccess = true;
                vmobject.Msg = "�����ɹ�";

            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = ex.Message;
            }
            return Json(vmobject);
        }
        public ActionResult ResumeVersions(string vid)
        {
            var vmobject = new JsonReturnMessages();
            try
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = vid;
                var p = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                if (p.VersionStatus != 2)
                {
                    vmobject.IsSuccess = false;
                    vmobject.Msg = "��ǰΪ�ѷ����İ汾���߻�δ������,��ѡ����ڰ汾!";
                }
                ArrayList arr = new ArrayList();
                arr.Add(vid);

                BoFactory.GetVersionTrackBo.ResumeExpiredVesionByUpdater(arr);
                vmobject.IsSuccess = true;
            }
            catch (Exception e)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = e.Message;
            }

            return Json(vmobject);
        }
        public ActionResult PublishInfo(string Vid)
        {
            SearchVersionTrack search = new SearchVersionTrack();
            search.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            SearchConfig searchc = new SearchConfig();
            searchc.PluginCode = Constants.UpdaterCode;
            IList<ConfigTemp> list = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);

            IList<ConfigInfo> listc = new List<ConfigInfo>();
            foreach (ConfigTemp c in list)
            {
                c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
                listc.Add(CommonMethods.ConvertToConfigInfo(c));
            }

            listc = InitConfigs(listc);//��ʼ��
            v.configList = listc;
            IEnumerable<IGrouping<string, ConfigInfo>> listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();
            listccc = listccc.OrderBy(T => T.Key);

            ViewData["keys"] = listccc.First().Key;
            ViewData["lists"] = listccc;
            ViewData["configList"] = v.configList.Count;

            return View(v);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="id">���ID</param>
        /// <param name="IsAdd">0��ʾ������1Ϊ������2Ϊ�޸�����</param>
        /// <returns></returns>
        public ActionResult PluginWizard(string Vid, string IsAdd,string IsCate,string IsUpdate)
        {
            ViewData["Vid"] = "";
            ViewData["IsUpdate"] = "";
            ViewData["type"] = "";
            if (!string.IsNullOrEmpty(Vid))
            {
                ViewData["Vid"] = Vid;

                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = Vid.Split(',')[0];
                string pid = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0].PluginCode.ToString();
                PluginInfo p = BoFactory.GetVersionTrackBo.GetPluginInfo(pid);
                if (p.PluginCateCode.Equals(Constants.PluginCateCode))
                    ViewData["type"]="1";
                else
                    ViewData["type"] = "0";

            }
            if (!string.IsNullOrEmpty(IsUpdate))
                ViewData["IsUpdate"] = IsUpdate;
            ViewData["IsAdd"] = IsAdd;
            ViewData["IsCate"] = IsCate;
            return View();
        }
        //��ȡ��ǰ������vid
        private ArrayList GetArrays(string Vid)
        {
            SearchVersionTrack search = new SearchVersionTrack();
            //��õ�һ��vid�����ܶ��VID��Ҳ������1������������һ����������ͬ��filepath�����ص�VID��
            search.VID = Vid;
            VersionTrack vs = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
            SearchVersionTrack se = new SearchVersionTrack();
            se.filepath = vs.FilePath;
            IList<VersionTrack> vlist = BoFactory.GetVersionTrackBo.GetVersionTrack(se);
            ArrayList arrVid = new ArrayList();
            foreach (VersionTrack v1 in vlist)
            {
                arrVid.Add(v1.VersionId.ToString());
            }

            return arrVid;
        }
 public ActionResult GetVersionTrackList(FormCollection form, string id)
 {
     JsonFlexiGridData data = null;
     PageView view = new PageView(form);
     SearchVersionTrack search = new SearchVersionTrack();
     search.PluginCode = id;
     data = BoFactory.GetVersionTrackBo.QueryVersionTrackInfo(view, search);
     return Json(data);
 }
        public ActionResult SavePluginInfos(PluginInfoTemp pt, FormCollection form, ConfigTemp c,string IsAdd)
        {
            var vmobject = new JsonReturnMessages();
            IList<PluginInfoTemp> listtemp = new List<PluginInfoTemp>();
            IList<ConfigTemp> list = new List<ConfigTemp>();
            string vids = "";

            try
            {
                string[] keys = form.AllKeys;
                //��ȡ����б�
                for (int i = 0; i < keys.Length; i++)
                {
                    if (keys[i].EndsWith(".PluginCode"))
                    {
                        PluginInfoTemp p = new PluginInfoTemp();
                        string prefix = keys[i].Split('.')[0];
                        UpdateModel(p, prefix);  //��������ͬʱ���Ի������ʵ�����
                        p.CompanyHomePage = pt.CompanyHomePage;
                        p.CompanyLinkman = pt.CompanyLinkman;
                        p.CompanyName = pt.CompanyName;
                        p.CompanyTel = pt.CompanyTel;
                        if (p.IsNeed == true)
                            p.IsDefault = true;
                        listtemp.Add(p);
                    }
                }
                //��ȡ�б����
                if (listtemp[0].IsIgnoreConfig == false)
                {
                    for (int i = 0; i < keys.Length; i++)
                    {
                        if (keys[i].EndsWith(".Key1"))
                        {
                            ConfigTemp config = new ConfigTemp();
                            string prefix = keys[i].Split('.')[0];
                            UpdateModel(config, prefix);  //��������ͬʱ���Ի������ʵ�����
                            config.PluginCode = prefix.Split('|')[0];
                            list.Add(config);
                        }
                    }
                }

                BoFactory.GetVersionTrackBo.UpdateTempPlugin(listtemp, list, IsAdd, base.CurrentUser.UserUId);
            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = ex.Message;
                return Json(vmobject);
            }
            //��ȡ��һ���汾����
            SearchVersionTrack sea = new SearchVersionTrack();
            sea.PluginCode = listtemp[0].PluginCode;
            sea.VersionName = listtemp[0].Version;
            vids = BoFactory.GetVersionTrackBo.GetVersionTrack(sea)[0].VersionId.ToString();//Ĭ��Ϊ��ǰ��ʱ���һ��
            foreach (PluginInfoTemp pti in listtemp)
            {
                SearchVersionTrack search = new SearchVersionTrack();
                search.PluginCode = pti.PluginCode.ToString();
                search.VersionName = pti.Version;
                VersionTrack vst = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                if (vst.PreVersionId != 0)
                {
                    vids = vst.PreVersionId.ToString();//�����һ���汾�����޸�״̬ʱ��ֱ��ѡ�񷢲���õ�vidһ��Ϊ�ϸ��汾vid
                    break;
                }

            }
            vmobject.IsSuccess = true;
            vmobject.Msg = vids;
            return Json(vmobject);
        }
        public ActionResult ViewPluginInfo(string id)
        {
            ViewData["Vid"] = id;
            SearchVersionTrack search = new SearchVersionTrack();
            search.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            PluginInfo p = BoFactory.GetVersionTrackBo.GetPluginInfo(v.PluginCode);
            SearchConfig searchc = new SearchConfig();
            searchc.PluginCode = v.PluginCode;
            IList<ConfigInfo> list = BoFactory.GetVersionTrackBo.GetConfigList(searchc);
            //ת��
            foreach (ConfigInfo c in list)
            {
                c.Value1 = c.Value1.Replace("<", "&lt;").Replace(">", "&gt;");
            }
            p.configList = list;
            p.VersionSummary = v.VersionSummary;

            SearchPlugin sh = new SearchPlugin();
            sh.PluginCateCode = p.PluginCateCode;
            p.PCname = BoFactory.GetVersionTrackBo.GetPluginCategoryInfos(sh)[0].DisplayName;

            return View(p);
        }
        public ActionResult UpdateConfigInfo(string id)
        {
            ViewData["vid"] = id;
            ArrayList vids = GetArrays(id);
            IList<PluginInfo> plist = new List<PluginInfo>();
            ViewData["configList"] = 0;
            foreach (string vid in vids)
            {
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = vid;
                id = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0].PluginCode.ToString();
                PluginInfo p = BoFactory.GetVersionTrackBo.GetPluginInfo(id);
                p.VersionSummary = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0].VersionSummary;
                SearchConfig search = new SearchConfig();
                if (p.IsIgnoreConfig == false)
                {
                    search.PluginCode = id;
                    search.ConfigCategoryCode = Constants.configCategory;
                    p.configList = BoFactory.GetVersionTrackBo.GetConfigList(search);
                }
                if (p.PluginCateCode.Equals(Constants.ActionCateCode))
                {
                    search.PluginCode = id;
                    IList<ActionExtend> alist = BoFactory.GetVersionTrackBo.QueryActionExtend(search);
                    if (alist.Count > 0)
                    {
                        ActionExtend a = alist[0];
                        p.ActionCode = a.ActionCode;
                        p.ActionSummary = a.Summary;
                    }
                }
                SearchPlugin sh = new SearchPlugin();
                sh.PluginCateCode = p.PluginCateCode;
                p.PCname = BoFactory.GetVersionTrackBo.GetPluginCategoryInfos(sh)[0].DisplayName;

                plist.Add(p);

                ViewData["configList"] = (int)ViewData["configList"] + p.configList.Count;
            }
            return View(plist);
        }
        public ActionResult UpdateConfigInfo(string id)
        {
            string type = Request.QueryString["type"];
            ViewData["vid"] = id;
            IList<PluginInfo> plist = new List<PluginInfo>();
            ViewData["configList"] = 0;

            SearchVersionTrack searchv = new SearchVersionTrack();
            searchv.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            SearchConfig search = new SearchConfig();
            search.PluginCode = Constants.MianName;

            if (type == "pc")
            {
                search.ConfigCategoryCode = Constants.SystemConfig; //Constants.PCGlobalConfig;

            }else if(type =="mobile")
            {
                search.ConfigCategoryCode = Constants.SystemConfig + "," + Constants.AppNameConfig + "," + Constants.GlobalConfig;
            }
            //search.ConfigCategoryCode = Constants.PCGlobalConfig + "," + Constants.SystemConfig + "," + Constants.AppNameConfig + "," + Constants.GlobalConfig;
            IList<ConfigInfo> listconfigs = null;
            switch (type)
            {
                case "pc":
                    listconfigs = BoFactory.GetVersionTrackBo.GetPCConfigList(search);
                    break;
                case "mobile":
                    listconfigs = BoFactory.GetVersionTrackBo.GetMobileConfigList(search);
                    break;
            }

            //if (type == "mobile")
            if( listconfigs == null || listconfigs.Count == 0)
            {
                listconfigs = InitConfigs(listconfigs);//��ʼ��
            }
            v.configList = listconfigs;

            IEnumerable<IGrouping<string, ConfigInfo>> listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();
            ViewData["keys"] = listccc.First().Key;
            ViewData["lists"] = listccc;
            ViewData["configList"] = v.configList.Count;

            return View(v);
        }
        public ActionResult UploadVersionFile(string IsAdd, string Vid, string IsUpdate, string PluginCateCode)
        {
            ViewData["code"] = "";
            ViewData["ver"] = "";
            ViewData["weburl"] = "";
            ViewData["IsAdd"] = IsAdd;
            ViewData["PluginCateCode"] = PluginCateCode;
            ViewData["IsUpdate"] = "";
            if (!string.IsNullOrEmpty(Vid) && !Vid.Equals("undefined"))
            {
                ViewData["Vid"] = Vid;
                SearchVersionTrack searchv = new SearchVersionTrack();
                searchv.VID = Vid.Split(',')[0];
                string pid = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0].PluginCode.ToString();
                PluginInfo p = BoFactory.GetVersionTrackBo.GetPluginInfo(pid);
                PluginInfoTemp pt = BoFactory.GetVersionTrackBo.GetPluginTempInfo(pid);
                ViewData["code"] = p.PluginCode;

                if (pt != null)
                {
                    ViewData["weburl"] = pt.PluginUrl;
                    ViewData["ver"] = pt.Version;
                }
                else
                {
                    ViewData["weburl"] = p.PluginUrl;
                    ViewData["ver"] = p.Version;
                }
            }
            if (!string.IsNullOrEmpty(IsUpdate))
                ViewData["IsUpdate"] = IsUpdate;

            return View();
        }
        public ActionResult SavePublishInfo(string Vid, FormCollection form)
        {
            var vmobject = new JsonReturnMessages();
            try
            {
                XmlMainConfigInfo x = InsertXml(Vid);//�XML
                SearchVersionTrack search = new SearchVersionTrack();
                search.VID = Vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                string[] codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None);
                string name = codes[codes.Length - 2];//��ȡ���code

                Beyondbit.AutoUpdate.IPublisher pub = new Beyondbit.SmartBox.Publisher.SmartBoxPublisher();
                if (Directory.Exists(Path.Combine(AppConfig.pubFolder ,name + AppConfig.subFix)))//������ڴ��ļ���
                    pub.UpdateApplication(v.FilePath, name);
                else
                    pub.CreateApplication(v.FilePath, name);

                BoFactory.GetVersionTrackBo.UpdateUpdaterPlushVersionTracks(x, Vid, base.CurrentUser.UserUId);//����״̬

                vmobject.IsSuccess = true;
                vmobject.Msg = "�����ɹ�";
            }
            catch (Exception ex)
            {
                vmobject.IsSuccess = false;
                vmobject.Msg = ex.Message;
            }

            return Json(vmobject);
        }
        //��ȡ���°汾����VID����Ϊ�б����޸�ʱ��������ʵ������һ�汾
        private ArrayList GetArray(string Vid)
        {
            SearchVersionTrack search = new SearchVersionTrack();
            search.VID = Vid;
            VersionTrack vs = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
            string filepath = vs.FilePath;
            SearchVersionTrack setemp = new SearchVersionTrack();
            setemp.filepath = filepath;
            IList<VersionTrack> vlisttemp = BoFactory.GetVersionTrackBo.GetVersionTrack(setemp);//�����һ���в���汾
            //����ʱ�����������ϴ����CODE��������һ��CODEƥ��
            foreach (VersionTrack vtemp in vlisttemp)
            {
                SearchVersionTrack searcht = new SearchVersionTrack();
                searcht.PreVersionId = vtemp.VersionId.ToString();//������һ�����°汾�Ƿ����
                IList<VersionTrack> templist = BoFactory.GetVersionTrackBo.GetVersionTrack(searcht);
                if (templist.Count > 0)
                {
                    filepath = templist[0].FilePath;
                    break;
                }
            }
            //��δ�ҵ��������õ�ǰ����汾
            SearchVersionTrack se = new SearchVersionTrack();
            se.filepath = filepath;
            IList<VersionTrack> vlist = BoFactory.GetVersionTrackBo.GetVersionTrack(se);
            ArrayList arrVid = new ArrayList();
            foreach (VersionTrack v1 in vlist)
            {
                arrVid.Add(v1.VersionId.ToString());
            }

            return arrVid;
        }
        public ActionResult UpdateConfigInfo(string id)
        {
            ViewData["vid"] = id;
            IList<PluginInfo> plist = new List<PluginInfo>();
            ViewData["configList"] = 0;

            SearchVersionTrack searchv = new SearchVersionTrack();
            searchv.VID = id;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];

            SearchConfig search = new SearchConfig();
            search.PluginCode = Constants.UpdaterCode;
            search.ConfigCategoryCode = Constants.UpdaterConfig;
            IList<ConfigInfo> listconfigs = BoFactory.GetVersionTrackBo.GetConfigList(search);
            listconfigs = InitConfigs(listconfigs);//��ʼ��
            v.configList = listconfigs;

            IEnumerable<IGrouping<string, ConfigInfo>> listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();
            ViewData["keys"] = listccc.First().Key;
            ViewData["lists"] = listccc;
            ViewData["configList"] = v.configList.Count;

            return View(v);
        }
        public ActionResult UpdatePluginInfo(string Vid, string IsAdd)
        {
            ViewData["configList"] = 0;
            ViewData["IsAdd"] = IsAdd;
            SearchVersionTrack search = new SearchVersionTrack();
            search.VID = Vid;
            VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];

            SearchConfig searchc = new SearchConfig();
            searchc.PluginCode = v.PluginCode.ToString();
            searchc.ConfigCategoryCode = Constants.UpdaterConfig;
            IList<ConfigInfo> list = BoFactory.GetVersionTrackBo.GetConfigList(searchc);//��ȡԭ�в���

            Dictionary<string, ConfigInfo> dic = new Dictionary<string, ConfigInfo>();
            foreach (var item in list)
            {
                var key = item.Key1 + "_FG$SP_" + item.PluginCode + "_FG$SP_" + item.ConfigCategoryCode;
                ConfigInfo temp = new ConfigInfo();
                temp.Key1 = item.Key1;
                temp.OldValue = item.Value1;
                temp.ConfigCategoryCode = item.ConfigCategoryCode;
                temp.PluginCode = Constants.UpdaterCode;
                dic.Add(key, temp);
            }
            IList<ConfigTemp> listT = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);//������ʱ������
            foreach (var item in listT)
            {
                var key = item.Key1 + "_FG$SP_" + item.PluginCode + "_FG$SP_" + item.ConfigCategoryCode;
                if (dic.ContainsKey(key))
                    dic[key].Value1 = item.Value1;
                else
                {
                    ConfigInfo temp = new ConfigInfo();
                    temp.Key1 = item.Key1;
                    temp.Value1 = item.Value1;
                    temp.OldValue = "";
                    temp.PluginCode = Constants.UpdaterCode;
                    temp.ConfigCategoryCode = item.ConfigCategoryCode;
                    dic.Add(key, temp);
                }
            }

            IList<ConfigInfo> listconfigs = dic.Values.ToList<ConfigInfo>();
            listconfigs = InitConfigs(listconfigs);//��ʼ��
            v.configList = listconfigs;

            IEnumerable<IGrouping<string, ConfigInfo>> listccc = v.configList.GroupBy(T => T.ConfigCategoryCode).ToList();
            listccc = listccc.OrderBy(T => T.Key);
            ViewData["keys"] = listccc.First().Key;
            ViewData["lists"] = listccc;
            ViewData["configList"] = v.configList.Count;

            return View(v);
        }
        private XmlConfigInfo InsertXmlByConfig(string Vid)
        {
            XmlConfigInfo xml = new XmlConfigInfo();
            ArrayList vids = GetArrays(Vid);//����������VID
            IList<PluginInfoTemp> list = new List<PluginInfoTemp>();
            SearchVersionTrack searchv = new SearchVersionTrack();
            VersionTrack v = null;
            SearchConfig serach = new SearchConfig();
            foreach (string vid in vids)
            {
                searchv.VID = vid;
                v = BoFactory.GetVersionTrackBo.GetVersionTrack(searchv)[0];
                PluginInfo p = BoFactory.GetVersionTrackBo.GetPluginInfo(v.PluginCode.ToString());
                serach.PluginCode = v.PluginCode.ToString();
                IList<ConfigInfo> listct = BoFactory.GetVersionTrackBo.GetConfigList(serach);//��ȡ������Ϣ
                p.configList = listct;
                p.VersionSummary = v.VersionSummary;
                if (p.PluginCateCode.Equals(Constants.ActionCateCode))
                {
                    SearchConfig search = new SearchConfig();
                    search.PluginCode = p.PluginCode;
                    ActionExtend a = BoFactory.GetVersionTrackBo.QueryActionExtend(search)[0];
                    p.ActionCode = a.ActionCode;
                    p.ActionSummary = a.Summary;
                }

                list.Add(TPluginInfo(p));
            }
            xml.PluginInfo = list;
            xml.PluginInfo = xml.PluginInfo.OrderBy(T => T.PluginCode).ToList();

            CommonMethods.WritePluginfoConfigXml(xml, Path.Combine(v.FilePath.Trim(), Constants.pluginName));

            return xml;
        }
        public ActionResult UpdatePluginInfo(string Vid, string IsAdd)
        {
            ViewData["configList"] = 0;
            ViewData["IsAdd"] = IsAdd;
            SearchVersionTrack search = new SearchVersionTrack();
            IList<PluginInfoTemp> plist = new List<PluginInfoTemp>();

            ArrayList arrVid = GetArray(Vid);//����������VID

            foreach (string vid in arrVid)
            {
                search.VID = vid;
                VersionTrack v = BoFactory.GetVersionTrackBo.GetVersionTrack(search)[0];
                PluginInfoTemp p = BoFactory.GetVersionTrackBo.GetPluginTempInfo(v.PluginCode.ToString());

                if (p.IsIgnoreConfig == false)//�������������Ϣ
                {
                    SearchConfig searchc = new SearchConfig();
                    searchc.PluginCode = v.PluginCode.ToString();
                    searchc.ConfigCategoryCode = Constants.configCategory;
                    IList<ConfigInfo> list = BoFactory.GetVersionTrackBo.GetConfigList(searchc);//��ȡԭ�в���

                    Dictionary<string, ConfigInfo> dic = new Dictionary<string, ConfigInfo>();
                    foreach (var item in list)
                    {
                        var key = item.Key1 + "_FG$SP_" + item.PluginCode;
                        ConfigInfo temp = new ConfigInfo();
                        temp.Key1 = item.Key1;
                        temp.OldValue = item.Value1;
                        dic.Add(key, temp);
                    }
                    IList<ConfigTemp> listT = BoFactory.GetVersionTrackBo.GetConfigListTemp(searchc);//������ʱ������
                    foreach (var item in listT)
                    {
                        var key = item.Key1 + "_FG$SP_" + item.PluginCode;
                        if (dic.ContainsKey(key))
                            dic[key].Value1 = item.Value1;
                        else
                        {
                            ConfigInfo temp = new ConfigInfo();
                            temp.Key1 = item.Key1;
                            temp.Value1 = item.Value1;
                            temp.OldValue = "";
                            dic.Add(key, temp);
                        }
                    }
                    p.configList = dic.Values.ToList<ConfigInfo>();
                    ViewData["configList"] = (int)ViewData["configList"] + p.configList.Count;

                    SearchPlugin sh = new SearchPlugin();
                    sh.PluginCateCode = p.PluginCateCode;
                    p.PCname = BoFactory.GetVersionTrackBo.GetPluginCategoryInfos(sh)[0].DisplayName;
                }
                plist.Add(p);
            }
            return View(plist);
        }