public static IAsyncOperation <string> GetDisplayContentAsync(this Tag tag) { var settings = SettingCollection.Current; if (settings.UseChineseTagTranslation) { var r = tag.GetEhTagTranslatorRecord(); if (r != null) { return(AsyncWrapper.CreateCompleted(r.Translated.Text)); } } if (settings.UseJapaneseTagTranslation) { var t = tag.GetEhWikiRecordAsync(); if (t.Status == AsyncStatus.Completed) { var r = t.GetResults(); if (!match(tag, r)) { return(AsyncWrapper.CreateCompleted(tag.Content)); } return(AsyncWrapper.CreateCompleted(r.Japanese ?? tag.Content)); } return(Run(async token => { try { var r = await t; if (!match(tag, r)) { return tag.Content; } return r.Japanese ?? tag.Content; } catch (Exception) { return tag.Content; } })); } return(AsyncWrapper.CreateCompleted(tag.Content)); }
public static IAsyncOperation <string> GetDisplayContentAsync(this Tag tag) { var settings = SettingCollection.Current; if (settings.UseChineseTagTranslation) { var r = tag.GetEhTagTranslatorRecord(); if (r != null) { return(AsyncOperation <string> .CreateCompleted(r.Translated.Text)); } } if (settings.UseJapaneseTagTranslation) { return(tag.GetEhWikiRecordAsync().ContinueWith(action => { if (action.Status == AsyncStatus.Completed) { var r = action.GetResults(); if (!match(tag, r)) { return tag.Content; } else { return r.Japanese ?? tag.Content; } } else { throw action.ErrorCode; } })); } return(AsyncOperation <string> .CreateCompleted(tag.Content)); }