void ShowErorrText(TranslationArrivedEventArgs ea) { if (ea.ErrorCode == 1) { string text = ((string)_SettigsWindow.Resources["TranslationEngineSwitchMsg"]) + " " + Convert.ToString(_TataruUIModel.TranslationEngine); ShowTransaltedText(text, ea.Color); } }
protected async Task OnTranslationArrived(TranslationArrivedEventArgs ea) { await this.UIThreadAsync(() => { _TextArrivedTime = DateTime.UtcNow; ShowWindow(); if (ea.ErrorCode == 0) { ShowTransaltedText(ea.Text, ea.Color); } else { ShowErorrText(ea); } _TextArrivedTime = DateTime.UtcNow; }); }
private async Task <TranslationArrivedEventArgs> TranslateMessage(string text, Color color) { var translationEA = new TranslationArrivedEventArgs(this) { Text = "", ErrorCode = -1, Color = color, }; int translateTryCount = 0; bool notTransalted = true; int errorCode = 0; while (translateTryCount < GlobalSettings.MaxTranslateTryCount && notTransalted) { var diffTime = (int)Math.Round((DateTime.UtcNow - _LastTranslationTime).TotalMilliseconds); if (diffTime < GlobalSettings.TranslationDelay) { await Task.Delay(GlobalSettings.TranslationDelay - diffTime); } string translation = string.Empty; Task.Run(async() => { translation = await _WebTranslator.TranslateAsync(text); }).Wait(GlobalSettings.TranslatorWaitTime); //}).Wait(); _LastTranslationTime = DateTime.UtcNow; if (translation.Length < 1) { notTransalted = true; errorCode = 1; if (_EnginIndex < _TranslationEngines.Count) { _EnginIndex++; } else { _EnginIndex = 1; } _TataruUIModel.TranslationEngine = _TranslationEngines[_EnginIndex].TranslationEngine; var ea = new TranslationArrivedEventArgs(this) { Text = "", ErrorCode = errorCode, Color = color, }; _TranslationArrived.InvokeAsync(ea).Forget(); } else { notTransalted = false; errorCode = 0; } translateTryCount++; translationEA = new TranslationArrivedEventArgs(this) { Text = translation, ErrorCode = errorCode, Color = color, }; } return(translationEA); }