private async Task ResolveFileAsync(UpgradeInfo info)
        {
            using (var tempPath = new TempDirectory(Path.Combine(AcceleriderFolders.Temp, $"{Name}-{Path.GetRandomFileName()}")))
            {
                var zipFilePath = Path.Combine(tempPath.Path, Path.GetRandomFileName());

                // 1. Download the module
                var downloader = FileTransferService
                                 .GetDownloaderBuilder()
                                 .UseDefaultConfigure()
                                 .From(info.Url)
                                 .To(zipFilePath)
                                 .Build();

                downloader.Run();

                await downloader;

                // 2. Unzip the module
                ZipFile.ExtractToDirectory(zipFilePath, tempPath.Path);

                Logger.Info($"[UNZIP] From {zipFilePath} to {tempPath.Path}");

                // 3. Move file to target path.
                var targetPath   = GetInstallPath(info.Version);
                var subDirectory = Directory.GetDirectories(tempPath.Path).FirstOrDefault();
                if (tempPath.MoveTo(targetPath, subDirectory))
                {
                    Logger.Info($"[MOVE FILE] From {subDirectory} to {targetPath}");
                }
            }
        }
Exemplo n.º 2
0
 public static IEnumerable <IDownloader> ToDownloaders(this IEnumerable <RemoteRef> @this)
 {
     return(@this.Select(item => FileTransferService
                         .GetDownloaderBuilder()
                         .UseDefaultConfigure()
                         .From(item.RemotePath)
                         .To(item.LocalPath)
                         .Build()));
 }
Exemplo n.º 3
0
        public static IDownloadingFile ToDownloadingFile(this string jsonText, Action <IDownloaderBuilder> configure, INetDiskUser owner)
        {
            var data = jsonText.ToObject <SerializedData>();

            var file    = data.File;
            var builder = FileTransferService.GetDownloaderBuilder();

            configure(builder);
            var downloader = builder.Build(data.DownloadInfo.ToString());

            return(DownloadingFile.Create(owner, file, downloader));
        }
Exemplo n.º 4
0
        private TransferItem MockDownload(INetDiskFile file, FileLocator to)
        {
            var downloader = FileTransferService
                             .GetDownloaderBuilder()
                             .UseSixCloudConfigure()
                             .From(file.Path)
                             .To(to)
                             .Build();

            return(new TransferItem(downloader)
            {
                File = file,
                Owner = this
            });
        }
Exemplo n.º 5
0
        public override IDownloadingFile Download(INetDiskFile from, FileLocator to)
        {
            var downloader = FileTransferService
                             .GetDownloaderBuilder()
                             .UseSixCloudConfigure()
                             .Configure(localPath => localPath.GetUniqueLocalPath(path => File.Exists(path) || File.Exists($"{path}{ArddFileExtension}")))
                             .From(new RemotePathProvider(this, from.Path))
                             .To(Path.Combine(to, from.Path.FileName))
                             .Build();

            var result = DownloadingFile.Create(this, from, downloader);

            SaveDownloadingFile(result);

            return(result);
        }