public override IList<AsimovVersion> GetAvailableVersions(PackageInfo packageInfo)
        {
            var versions = new List<AsimovVersion>();

            CollectZipFiles(versions, Uri.LocalPath, 1);

            return versions.OrderByDescending(x => x.Timestamp).ToList();
        }
        public override string CopyAndExtractToTempFolder(string versionId, PackageInfo packageInfo, string tempFolder)
        {
            string fileName = versionId + ".zip";
            string localZipFileName = Path.Combine(tempFolder, fileName);

            webClient.DownloadFile(Uri + "/" + versionId + ".zip", localZipFileName);

            Extract(localZipFileName, tempFolder, packageInfo.InternalPath);

            File.Delete(localZipFileName);

            return Path.Combine(tempFolder, packageInfo.InternalPath);
        }
        public override string CopyAndExtractToTempFolder(string versionId, PackageInfo packageInfo, string tempFolder)
        {
            var fileInfo = GetFilePathForVersion(versionId);
            var localZipFileName = Path.Combine(tempFolder, fileInfo.Name);

            File.Copy(fileInfo.FullName, localZipFileName, true);

            Extract(localZipFileName, tempFolder, packageInfo.InternalPath);

            File.Delete(localZipFileName);

            return Path.Combine(tempFolder, packageInfo.InternalPath);
        }
 public override AsimovVersion GetVersion(string versionId, PackageInfo packageInfo)
 {
     var fileInfo = GetFilePathForVersion(versionId);
     return GetVersionInfoFromFile(fileInfo);
 }
 public abstract AsimovVersion GetVersion(string versionId, PackageInfo packageInfo);
 public abstract IList<AsimovVersion> GetAvailableVersions(PackageInfo packageInfo);
 public abstract string CopyAndExtractToTempFolder(string versionId, PackageInfo packageInfo, string tempFolder);
 public override AsimovVersion GetVersion(string versionId, PackageInfo packageInfo)
 {
     return GetAsimovVersionByName(versionId);
 }
 public override IList<AsimovVersion> GetAvailableVersions(PackageInfo packageInfo)
 {
     return FetchAvailableFiles().ToList();
 }