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);
    }
Esempio n. 2
0
    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;
    }