public async Task ProcessFile(BackgroundDownloadFile file) { if (!(await NativeAudioPlayer.VerifyMp3(file.Destination, true))) { LogManager.Shared.Log("Failed Download", file); Download(file); return; } Files.Remove(file.TrackId); if (TasksDictionary.ContainsKey(file.Id)) { TasksDictionary.Remove(file.Id); } var destination = Path.Combine(Locations.MusicDir, Path.GetFileName(file.Destination)); if (File.Exists(destination)) { File.Delete(destination); } File.Move(file.Destination, destination); LogManager.Shared.Log("File Proccessed", file); await OfflineManager.Shared.TrackDownloaded(file.TrackId); NotificationManager.Shared.ProcDownloaderStarted(); }
/// <summary> /// Removes the task from the storage. /// </summary> /// <param name="task">The DownloadTask.</param> public void UnRegisterTask(DownloadTask task) { lock (registry) { if (TasksDictionary.ContainsKey(task.DownloadItem.Enclosure.Url)) { TasksDictionary.Remove(task.DownloadItem.Enclosure.Url); RemoveTask(task); var disposable = task.Downloader as IDisposable; if (disposable != null) { disposable.Dispose(); } } } string fileName = Path.Combine(RootDir.FullName, task.TaskId + ".task"); FileHelper.DestroyFile(fileName); }