/// <summary>
 /// 添加一个新版本
 /// </summary>
 /// <param name="version">版本号</param>
 /// <returns>是否添加成功</returns>
 public bool AddVersion(Versioninfo version)
 {
     version.Date = DateTime.Now;
     DataBaseContext.Versioninfo.Add(version);
     this.DataBaseContext.SaveChanges();
     return(true);
 }
        /// <summary>
        /// 根据版本号获取版本信息
        /// </summary>
        /// <param name="version">版本号</param>
        /// <returns></returns>
        public VersionUpdateInfo GetVersionInfoByVersion(string version)
        {
            Versioninfo versioninfo = this.GetVersionByVersion(version);

            if (versioninfo != null)
            {
                return(CacheKey.UploadCacheFileRootPath.FromProjectRootCombine(versioninfo.Path, CacheKey.VersionUpdateFileSaveName).ReadFromFile <VersionUpdateInfo>());
            }
            else
            {
                return(null);
            }
        }
Exemple #3
0
        /// <summary>
        /// 根据历史版本的改动获取所有需要下载的文件的集合
        /// </summary>
        /// <param name="historys">历史改动版本</param>
        /// <param name="cacheKey">配置</param>
        /// <param name="isDesc">是否逆向操作</param>
        /// <returns>需要修改的文件信息</returns>
        public static VersionUpdateInfo ConvertToHistory(List <Versioninfo> historys, CacheKey cacheKey, bool isDesc = false)
        {
            VersionUpdateInfo version = new VersionUpdateInfo();

            if (isDesc == false)
            {
                //遍历历史
                foreach (var item in historys)
                {
                    //获取根目录
                    string root = cacheKey.UploadCacheFileRootPath.FromProjectRootCombine(item.Path, cacheKey.VersionUpdateFileSaveName);
                    //读取对应版本的配置文件
                    VersionUpdateInfo info = root.ReadFromFile <VersionUpdateInfo>();
                    foreach (var fileInfo in info.Files.Values)
                    {
                        version.AddFileInfo(fileInfo);
                    }
                }
            }
            else
            {
                for (int i = historys.Count - 1; i > 0; i--)
                {
                    Versioninfo item = historys[i];
                    //获取根目录
                    string root = cacheKey.UploadCacheFileRootPath.FromProjectRootCombine(item.Path, cacheKey.VersionUpdateFileSaveName);

                    //读取对应版本的配置文件
                    VersionUpdateInfo info = root.ReadFromFile <VersionUpdateInfo>();
                    foreach (var fileInfo in info.Files.Values)
                    {
                        if (fileInfo.Status == FileStatus.Add)
                        {
                            fileInfo.Status = FileStatus.Delete;
                        }
                        else if (fileInfo.Status == FileStatus.Delete)
                        {
                            fileInfo.Version = historys[i - 1].Value;
                            fileInfo.Status  = FileStatus.Add;
                        }
                        else if (fileInfo.Status == FileStatus.Modify)
                        {
                            fileInfo.Version = historys[i - 1].Value;
                            fileInfo.Status  = FileStatus.Modify;
                        }
                        version.AddFileInfo(fileInfo);
                    }
                }
            }
            return(version);
        }