public void StopDownload()
 {
     _downloadItem?.StopDownload();
     _downloadItem    = null;
     Downloading      = false;
     DownloadProgress = 0;
 }
        private void DownloadItemOnDownloadItemDownloadCompleted(object sender, DownloadCompletedEventArgs args)
        {
            DownloadPending = false;
            Downloading     = false;

            CheckForTrack();
            if (args.Error != null)
            {
                DownloadState = DownloadState.Error;
            }
            else if (!args.Cancelled)
            {
                Item.DownloadDate = DateTime.Now;
                RaisePropertyChanged(nameof(DownloadDate));
            }

            var managerItem = (DownloadManagerItem)sender;

            managerItem.DownloadItemDownloadProgressChanged -= DownloadItemOnDownloadItemDownloadProgressChanged;
            managerItem.DownloadItemDownloadCompleted       -= DownloadItemOnDownloadItemDownloadCompleted;
            managerItem.DownloadItemDownloadStarted         -= DownloadItemOnDownloadItemDownloadStarted;

            managerItem.Dispose();
            _downloadItem = null;

            _workspaceViewModel.HandlerOnDownloadItemDownloadCompleted(sender, args);
        }
Example #3
0
        private void DownloadItemOnDownloadItemDownloadCompleted(object sender, DownloadCompletedEventArgs args)
        {
            DownloadPending = false;
            Downloading     = false;

            CheckForTrack();
            if (args.Error != null)
            {
                DownloadState = DownloadState.Error;
            }

            var managerItem = (DownloadManagerItem)sender;

            managerItem.DownloadItemDownloadProgressChanged -= DownloadItemOnDownloadItemDownloadProgressChanged;
            managerItem.DownloadItemDownloadCompleted       -= DownloadItemOnDownloadItemDownloadCompleted;
            managerItem.DownloadItemDownloadStarted         -= DownloadItemOnDownloadItemDownloadStarted;

            managerItem.Dispose();
            _downloadItem = null;

            _workspaceViewModel.HandlerOnDownloadItemDownloadCompleted(sender, args);
        }
        internal DownloadManagerItem DownloadSong(bool overwrite = true)
        {
            Downloading      = true;
            DownloadProgress = 1;
            DownloadPending  = true;
            if (DownloadState == DownloadState.NeedsConvertion)
            {
                _downloadItem = new ConvertionItem(Item, _uncovertedPath, GetFilePath());
            }
            else
            {
                _downloadItem = new DownloadItem(Item, GetFilePath(),
                                                 _workspaceViewModel.Workspace.Settings.DownloadFormat, overwrite);
            }

            _downloadItem.DownloadItemDownloadProgressChanged += DownloadItemOnDownloadItemDownloadProgressChanged;
            _downloadItem.DownloadItemDownloadCompleted       += DownloadItemOnDownloadItemDownloadCompleted;
            _downloadItem.DownloadItemDownloadStarted         += DownloadItemOnDownloadItemDownloadStarted;
            _downloadItem.DownloadItemConvertionStarted       += DownloadItemOnDownloadItemConvertionStarted;

            DownloadState = DownloadState.Queued;

            return(_downloadItem);
        }