public async void OnNext(EventPattern <WhenClipboardContainsTextEventArgs> value) { await Task.Run(async() => { var currentString = value.EventArgs.CurrentString; if (previousString == currentString) { return; } previousString = currentString; var fromLanguageExtension = await languageDetector.DetectLanguage(currentString); var results = await cache.GetAsync(currentString, async() => await Task.WhenAll(meanFinderFactory.GetFinders().Select(t => t.Find(new TranslateRequest(currentString, fromLanguageExtension))))) .ConfigureAwait(false); var findedMeans = await resultOrganizer.OrganizeResult(results, currentString).ConfigureAwait(false); await notifier.AddNotificationAsync(currentString, ImageUrls.NotificationUrl, findedMeans.DefaultIfEmpty(string.Empty).First()).ConfigureAwait(false); await googleAnalytics.TrackEventAsync("DynamicTranslator", "Translate", currentString, null).ConfigureAwait(false); await googleAnalytics.TrackAppScreenAsync("DynamicTranslator", ApplicationVersion.GetCurrentVersion(), "dynamictranslator", "dynamictranslator", "notification").ConfigureAwait(false); }); }
private async Task Notify(string currentString, Maybe <string> findedMeans) { if (!string.IsNullOrEmpty(findedMeans.DefaultIfEmpty(string.Empty).First())) { await _notifier.AddNotificationAsync(currentString, ImageUrls.NotificationUrl, findedMeans.DefaultIfEmpty(string.Empty).First() ); } }
public void Intercept(IInvocation invocation) { try { invocation.Proceed(); } catch (Exception ex) { notifier.AddNotificationAsync(Titles.Exception, ImageUrls.NotificationUrl, ex.Message); } }
private Task Notify(string currentString, Maybe <string> findedMeans) { if (!string.IsNullOrEmpty(findedMeans.DefaultIfEmpty(string.Empty).First())) { return(_notifier.AddNotificationAsync(currentString, ImageUrls.NotificationUrl, findedMeans.DefaultIfEmpty(string.Empty).First() )); } return(Task.FromResult(0)); }
private void HandleException(IInvocation invocation, Exception ex) { var exceptionText = new StringBuilder() .AppendLine("Exception Occured on:" + invocation.TargetType.Name) .AppendLine(ex.Message) .AppendLine(ex.InnerException?.Message ?? string.Empty) .AppendLine(ex.StackTrace) .ToString(); notifier.AddNotificationAsync(Titles.Exception, ImageUrls.NotificationUrl, exceptionText); SendExceptionGoogleAnalyticsAsync(exceptionText, false); }