public async Task <TransferInfo> AddTransfer(DownloadDefinition request) { await AssureInit(); StorageFolder destinationFolder; switch (request.Storage) { case StorageType.AudioLibrary: destinationFolder = KnownFolders.MusicLibrary; break; default: destinationFolder = KnownFolders.VideosLibrary; break; } var destinationFile = await destinationFolder.CreateFileAsync(request.Filename, CreationCollisionOption.GenerateUniqueName); var downloader = new BackgroundDownloader(); if (!string.IsNullOrEmpty(request.Username) && !string.IsNullOrEmpty(request.Password)) { downloader.ServerCredential = new PasswordCredential(request.Source.ToString(), request.Username, request.Password); } var download = downloader.CreateDownload(request.Source, destinationFile); var progress = new DownloadProgress(download); download.StartAsync().AsTask(progress); _activeDownloads.Add(download.Guid, progress); return(progress.TransferInfo); }
public virtual async Task StartDownload(bool transcode, StorageType storage, string name, int audioTrack, int subtitleTrack) { var extension = System.IO.Path.GetExtension(Path); var download = new DownloadDefinition() { Path = Path, Label = name, Filename = name + extension, Storage = storage, Transcode = transcode, Username = _appContext.Settings.User, Password = _appContext.Settings.Password, AudioTrack = audioTrack, SubtitleTrack = subtitleTrack, }; await _appContext.Downloads.AddDownload(download); _appContext.View.GotoDownloads(); }