public async Task ProcessMediaAsync(MediaFile mediaFile, bool restore) { string newDir = m_rootDirectory + FixDirectory(mediaFile.Media.Name) + "S" + mediaFile.Season + "E" + mediaFile.Episode; string mediaCheck = FindMediaFileRecursive(newDir); if (mediaCheck != string.Empty) { mediaFile.FilePath = mediaCheck; mediaFile.FinishedProcessing(); m_timer.Stop(); return; } m_isRestoring = restore; m_mediaFile = mediaFile; Console.WriteLine("Processing Download"); string nzbLink = await m_usenetIndexer.GetShowLinkByNzbIdAsync(mediaFile.Media.SearchID, mediaFile.Season, mediaFile.Episode, m_downloadIndex); if (nzbLink == string.Empty) { mediaFile.StopAllProcessing(); return; } _link = nzbLink; Console.WriteLine("Attempting Download"); int id; string checkId = await m_mediaDatabase.GetValueAsync(mediaFile.Media.SearchID, m_mediaFile.Season, m_mediaFile.Episode); if (checkId != string.Empty) { id = Convert.ToInt32(checkId); } else { id = m_nzbManager.DownloadMovieByNzbLink(nzbLink); m_mediaDatabase.AddMedia(mediaFile.Media.SearchID, m_mediaFile.Season, m_mediaFile.Episode, id.ToString()); } Console.WriteLine("Downloading"); mediaFile.Message = "Downloading"; m_mediaDownload = new NzbMediaDownload(id, mediaFile); }