public override async Task <IPackage> StartPackageDownload() { Log.Debug("Starting download of package", this); OnOperationStatusChanged(new ProcessStatusEventArgs("Downloading files...", ComponentType)); string packagePath = _destination; await _webclient.DownloadFileTaskAsync(DownloadUrl, packagePath, new Progress <Tuple <long, int, long> >(t => { ProgressChangedEventArgs a = new ProgressChangedEventArgs(t.Item2, this); OnDownloadProgressChanged(a); })); var pkg = new VKPackage(Name, Version, packagePath, ComponentType); OnOperationStatusChanged(new ProcessStatusEventArgs("Download finished", ComponentType)); return(pkg); }
public virtual async Task <IPackage> StartPackageDownload() { Log.Debug("Starting download of package", this); OnOperationStatusChanged(new ProcessStatusEventArgs("Downloading files...", ComponentType)); packagePath = Path.GetTempPath() + DownloadUrl.Segments[DownloadUrl.Segments.Length - 1]; await _webclient.DownloadFileTaskAsync(DownloadUrl, packagePath, new Progress <Tuple <long, int, long> >(t => { ProgressChangedEventArgs a = new ProgressChangedEventArgs(t.Item2, this); OnDownloadProgressChanged(a); })); var pkg = new VKPackage(Name, Version, packagePath, ComponentType); OnOperationStatusChanged(new ProcessStatusEventArgs("Download finished", ComponentType)); return(pkg); }
public virtual async Task <IPackage> StartPackageDownloadWithDependencies(bool forceDependencyDownload) { OnOperationStatusChanged(new ProcessStatusEventArgs($"Downloading package {Name}...", ComponentType)); packagePath = Path.GetTempPath() + DownloadUrl.Segments[DownloadUrl.Segments.Length - 1]; await _webclient.DownloadFileTaskAsync(DownloadUrl, packagePath, new Progress <Tuple <long, int, long> >(t => { ProgressChangedEventArgs a = new ProgressChangedEventArgs(t.Item2, this); OnDownloadProgressChanged(a); })); var p = new VKPackage(Name, Version, packagePath, ComponentType); //Download all depencencies if (Dependencies != null) { List <IPackage> dep = new List <IPackage>(); foreach (var v in Dependencies) { if (!ProgramDetector.IsVoukoderComponentInstalled(v) || forceDependencyDownload) { OnOperationStatusChanged(new ProcessStatusEventArgs($"Downloading package dependency {v.ComponentType} {v.Name}...", ComponentType)); packagePath = Path.GetTempPath() + v.DownloadUrl.Segments[v.DownloadUrl.Segments.Length - 1]; await _webclient.DownloadFileTaskAsync(v.DownloadUrl, packagePath, new Progress <Tuple <long, int, long> >(t => { ProgressChangedEventArgs a = new ProgressChangedEventArgs(t.Item2, this); OnDownloadProgressChanged(a); })); dep.Add(new VKPackage(v.Name, v.Version, packagePath, v.ComponentType)); } } p.Dependencies = dep; } OnOperationStatusChanged(new ProcessStatusEventArgs("Download finished", ComponentType)); return(p); }