private void DoDownloadTab(string arg) { downloadButtonClicked = true; if (IsDownloading) { Dialog.Show(AppResources.Search_DownloadFailed); return; } TabEntity tab; if (_sortOrder == ResultsSortOrder.Alphabetical) { tab = SearchGroupTabs.Tabs.FirstOrDefault(t => t.SearchId == arg); } else { tab = SearchPopularTabs.FirstOrDefault(t => t.SearchId == arg); } //TODO create converter var entry = new SearchTabResultEntry { Id = tab.SearchId, Url = tab.SearchUrl, Type = tab.Type }; var filePath = TabFileStorage.CreateTabFilePath(); // TODO Do not depend on implementation! // TODO examine IO errors var downloader = new UltimateGuitarFileDownloader(entry, filePath); downloader.DownloadComplete += delegate(object sender, DownloadCompletedEventArgs args) { if (args.HasErrors) { Deployment.Current.Dispatcher.BeginInvoke( () => { IsDownloading = false; }); } else { DownloadTabComplete(tab, filePath); } }; SearchInfoTextBlock = String.Format(AppResources.Search_Downloading, tab.Name); IsDownloading = true; try { downloader.Download(); } catch (Exception ex) { Dialog.Show(String.Format(AppResources.Search_Error, ex)); IsDownloading = false; } }
public UltimateGuitarFileDownloader(SearchTabResultEntry entry, string destination) : base(destination) { Entry = entry; }
private bool FilterTab(SearchTabResultEntry entry) { return(true); }