public void ProcessFiles() { var files = _folderInteractor.GetFilesForFolder(_folderToWatch).Shuffle(); foreach (var file in files) { if (SupportedFileTypes.IsSupportedFileType(file)) { var filePath = file; if (SupportedFileTypes.RequiresTranscoding(file)) { var newFile = _transcoder.Transcode(filePath); _folderInteractor.DeleteFile(filePath); filePath = newFile; } var musicInfo = _musicInfoReader.GetInfoForFile(filePath); var album = string.IsNullOrEmpty(musicInfo.Album) ? UNKNOWN_ALBUM_NAME : musicInfo.Album; var artist = string.IsNullOrEmpty(musicInfo.Artist) ? UNKNOWN_ARTIST_NAME : musicInfo.Artist; musicInfo.FullPath = MoveToLibraryFolder(filePath, artist, album); _library.AddOrUpdateMusicInLibrary(musicInfo); } } }
public void ExecuteTasks() { while (true) { if (transcodingTasksQueue.Count > 0) { TranscoderActorTask task = transcodingTasksQueue.Dequeue(); Task.Run(() => { _transcoder.Transcode(task.Source, task.Destination, task.Format); }); } if (metadataTasksQueue.Count > 0) { MetadataActorTask task = metadataTasksQueue.Dequeue(); Task.Run(() => { Dictionary <string, string> mtd = _metadataExtractor.DumpFlat(task.Source); }); } if (qualityTasksQueue.Count > 0) { QualityControlActorTask task = qualityTasksQueue.Dequeue(); Task.Run(() => { _transcoder.QualityCheck(task.Source); }); } Thread.Sleep(2000); } }