/// <summary> /// �ƶ��ļ��� /// </summary> /// <param name="xmlInfo"></param> private void MoveFolder(XmlMainConfigInfo xmlInfo, string vername) { FileInfo f = new FileInfo(xmlInfo.savefile); //�ƶ�ǰ����Ҫɾ���ƶ�ȥ��λ���Ƿ����ԭ���ļ� FileInfo oldfile = new FileInfo(xmlInfo.oldfile); if (oldfile.Exists)//�ж��Ƿ���Ҫɾ��ԭ���ļ� oldfile.Delete(); f.MoveTo(xmlInfo.oldfile);//����code+�汾��------- string thisFilePath = AppConfig.filePath + Common.Entities.Constants.TempName; //�����ļ���versionnameΪ�����ļ�����ָ����Ŀ¼�� string FilePath = AppConfig.filePath + xmlInfo.oldCode;//��ǰ���CODE�ļ��� while (!Directory.Exists(FilePath)) { Directory.CreateDirectory(FilePath); } //�����Ե�һ�������CODEΪ���ļ��У��Ե�һ�������CODE+�汾�����İ汾�ļ��� string thispath = Path.Combine(FilePath, Constants.UpdaterCode + "_FG$SP_" + vername);//��ǰ�ƶ���ȥ���ļ��� //�ƶ�ǰɾ����CODE���Ƿ���ڸð汾�ļ��� if (Directory.Exists(thispath)) Directory.Delete(thispath, true); Directory.Move(thisFilePath, thispath);//�ƶ�-------- }
/// <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; }
/// <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> /// ��ѹ����ȡ��Ϣ /// </summary> /// <returns></returns> private XmlMainConfigInfo Decompressing(string vername) { 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);//��ѹ XmlMainConfigInfo xmlInfo = new XmlMainConfigInfo(); xmlInfo.savefile = saveFile; xmlInfo = GetXmlInfo(thisFilePath);//��ȡ����������������Ϣ xmlInfo.oldCode = Constants.UpdaterCode;//�����Ե�һ��CODEΪ�ļ��� //zip�ļ��е�һ��CODE+�汾������ string oldfilepath = Path.Combine(zipPaht, Constants.UpdaterCode + "_FG$SP_" + vername + ".zip");//��������zip�ļ� xmlInfo.savefile = saveFile; xmlInfo.oldfile = oldfilepath; return xmlInfo; }
/// <summary> /// ����XML��ȡ��Ϣ /// </summary> /// <returns></returns> private XmlMainConfigInfo GetXmlInfo(string xmlpath) { XmlMainConfigInfo x = new XmlMainConfigInfo(); IList<ConfigInfoPC> listG = CommonMethods.GetMainEntityFromXMLPC(Path.Combine(xmlpath, Common.Entities.Constants.UpdaterName)); x.configList = listG; return x; }
/// <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; }
/// <summary> /// ����XML��ȡ��Ϣ /// </summary> /// <returns></returns> private XmlMainConfigInfo GetXmlInfo(string xmlpath) { XmlMainConfigInfo x = new XmlMainConfigInfo(); IList<ConfigInfoPC> listG = CommonMethods.GetMainEntityFromXMLPC(Path.Combine(xmlpath, Common.Entities.Constants.globalName)); IList<ConfigInfoPC> listS = CommonMethods.GetMainEntityFromXMLPC(Path.Combine(xmlpath, Common.Entities.Constants.systemName)); IList<ConfigInfoPC> listA = CommonMethods.GetMainEntityFromXMLPC(Path.Combine(xmlpath, Common.Entities.Constants.AppName)); foreach (var c in listS) { listG.Add(c); } foreach (var c in listA) { listG.Add(c); } x.configList = listG; return x; }
private void resumeVersionInfoByMain(ArrayList activeVersion, ArrayList resumeVersion, XmlMainConfigInfo xml, string code) { try { string filepaht = ""; if (activeVersion != null)//若有正在使用的版本(未删除正在使用的版本) { foreach (var a in activeVersion) { SearchVersionTrack searchv = new SearchVersionTrack(); searchv.VID = a.ToString(); VersionTrack v = versionTrackDao.GetVersionTrackList(searchv)[0]; v.VersionStatus = 2; versionTrackDao.Update(v);//更新正在使用的版本为过期 } } foreach (var a in resumeVersion) { SearchVersionTrack searchv = new SearchVersionTrack(); searchv.VID = a.ToString(); VersionTrack v = versionTrackDao.GetVersionTrackList(searchv)[0]; v.VersionStatus = 1; filepaht = v.FilePath; versionTrackDao.Update(v);//更新正在使用的版本为正在使用 } IList<ConfigInfoPC> plist = xml.configList; //更新除了versiontrack之外的所有表信息 for (int i = 0; i < plist.Count; i++) { SearchConfig search = new SearchConfig(); search.PluginCode = code; configInfoDao.DeleteConfigInfo(search);//删除配置 foreach (ConfigInfoPC c in plist) { c.PluginCode = code; configInfoPCDao.Insert(c);//插入配置 } } //发布更新 string[] codes = filepaht.Split(new string[] { "\\" }, StringSplitOptions.None); string name = codes[codes.Length - 2];//获取插件code Beyondbit.AutoUpdate.IPublisher pub = new Beyondbit.SmartBox.Publisher.SmartBoxPublisher(); pub.UpdateApplication(filepaht, name); } catch (DalException ex) { throw new BOException("恢复版本出错", ex); } catch (Exception e) { throw new BOException("恢复版本出错", e); } }
public virtual void UpdateUpdaterPlushVersionTracks(XmlMainConfigInfo xml, string vid, string uid) { try { SearchConfig search = new SearchConfig(); search.PluginCode = Constants.UpdaterCode; configInfoDao.DeleteConfigInfo(search);//先删除原由真实参数表数据 IList<ConfigTemp> listtemp = configTempDao.GetConfigList(search); //没修改基本信息,直接发布,需要覆盖 foreach (ConfigTemp c in listtemp) { SearchConfig searchcc = new SearchConfig(); searchcc.PluginCode = Constants.UpdaterCode; searchcc.ConfigCategoryCode = c.ConfigCategoryCode; searchcc.key = c.Key1; IList<ConfigInfo> listct = configInfoDao.GetConfigList(searchcc); if (listct.Count > 0) configInfoDao.Update(CommonMethods.ConvertToConfigInfo(c)); else configInfoDao.Insert(CommonMethods.ConvertToConfigInfo(c)); } configTempDao.DeleteInfo(search);//删除当前插件临时表数据 //更新原由版本为过期,当前版本为正在使用 SearchVersionTrack searchtemps = new SearchVersionTrack(); searchtemps.VID = vid; VersionTrack vsss = versionTrackDao.GetVersionTrackList(searchtemps)[0];//当前版本 VersionTrack oldver = versionTrackDao.Get(vsss.PreVersionId);//获取上个版本即正在使用的版本 if (oldver != null) { oldver.VersionStatus = 2; versionTrackDao.Update(oldver); } vsss.VersionStatus = 1; versionTrackDao.Update(vsss); } catch (DalException ex) { throw new BOException("修改主程序版本信息出错", ex); } }
// [Frame(true, true)] public virtual string SaveUpdaterZipInfo(VersionTrack version, XmlMainConfigInfo xmlInfo, string IsAdd, string IsUpdate, string uid, string vids) { string oldfp = ""; string oldname = ""; SearchVersionTrack search = new SearchVersionTrack(); try { search.VID = vids; VersionTrack v = versionTrackDao.GetVersionTrackList(search)[0]; //删除 if (!string.IsNullOrEmpty(IsUpdate))//若为修改 { if (IsUpdate.Equals("1"))//若已有上传文件 { string[] codes = v.FilePath.Split(new string[] { "\\" }, StringSplitOptions.None); oldfp = v.FilePath; oldname = codes[codes.Length - 1];//版本名 SearchConfig searchc = new SearchConfig(); searchc.PluginCode = Constants.UpdaterCode; configTempDao.DeleteInfo(searchc); } } //更新版本状态 if (IsAdd.Equals("1")) v.VersionStatus = 3; else v.VersionStatus = 0; versionTrackDao.Update(v); //转换 IList<ConfigTemp> listts = new List<ConfigTemp>(); foreach (ConfigInfoPC c in xmlInfo.configList) { listts.Add(CommonMethods.ConvertToConfigInfoPC(c)); } InserConfigInfo(listts, Constants.UpdaterCode);//新赠插件配置临时表 if (Directory.Exists(oldfp)) //5.需要删除原由文件夹 Directory.Delete(oldfp, true); //需要删除存在的位置的原由文件 FileInfo f = new FileInfo(Path.Combine(AppConfig.SaveZipPath, oldname + ".zip")); if (f.Exists) f.Delete(); return vids; } catch (DalException ex) { throw new BOException("上传插件zip文件出错", ex); } }