public List <Models.AvailablePackage> GetAvailablePackageList() { Cache.TryGetValue(REPOSITORY_MICROSERVICE_AVAILABLE_LIST_CACHE_KEY, out List <Models.AvailablePackage> result); if (result != null) { return(result); } result = new List <Models.AvailablePackage>(); var zipFileList = from f in System.IO.Directory.GetFiles(Settings.MicroServiceRepositoryFolder, "*.zip", System.IO.SearchOption.AllDirectories) let fileInfo = new System.IO.FileInfo(f) select fileInfo; foreach (var item in zipFileList) { var info = new Models.AvailablePackage { PackageFileName = item.Name, LastWriteTime = item.LastWriteTime, Size = item.Length }; SetCurrentVersion(info); result.Add(info); } Cache.Set(REPOSITORY_MICROSERVICE_AVAILABLE_LIST_CACHE_KEY, result, DateTime.Now.AddDays(1)); return(result); }
protected override void OnInitialized() { var packageList = MicroServicesCollector.GetAvailablePackageList(); package = packageList.FirstOrDefault(i => i.PackageFileName.Equals(PackageFileName, StringComparison.InvariantCultureIgnoreCase)); backupFileInfoList = MicroServicesCollector.GetBackupFileList(PackageFileName); base.OnInitialized(); }
public string RollbackPackage(Models.AvailablePackage package, FileInfo fileInfo) { var destPackage = System.IO.Path.Combine(Settings.MicroServiceRepositoryFolder, package.PackageFileName); try { fileInfo.LastWriteTime = DateTime.Now; fileInfo.CreationTime = DateTime.Now; System.IO.File.Copy(fileInfo.FullName, destPackage, true); Cache.Remove(REPOSITORY_MICROSERVICE_AVAILABLE_LIST_CACHE_KEY); OnChanged?.Invoke(); } catch (Exception ex) { return(ex.Message); } return(null); }
private void SetCurrentVersion(Models.AvailablePackage availablePackage) { if (availablePackage == null) { return; } var backupList = GetBackupFileList(availablePackage.PackageFileName); if (backupList == null || !backupList.Any()) { availablePackage.CurrentVersion = "unknown"; return; } var lastBackup = backupList.First(); var parts = lastBackup.FullName.Split(@"\"); var version = parts[parts.Length - 2]; availablePackage.CurrentVersion = version; }