private void OnResponse(IAsyncResult ar) { WebRequest request = (WebRequest)ar.AsyncState; WebResponse response = null; try { response = request.EndGetResponse(ar); } catch (WebException ex) { if (DontReachable != null) { TranslationEventArgs eventArgs = new TranslationEventArgs(); eventArgs.DataTranslated = ex.Message; DontReachable(this, eventArgs); } return; } using (StreamReader sr = new StreamReader(response.GetResponseStream())) { string fetchedXml = sr.ReadToEnd(); if (Complete != null) { TranslationEventArgs eventArgs = new TranslationEventArgs(); eventArgs.DataTranslated = fetchedXml; Complete(this, eventArgs); } } }
void translation_Complete(object sender, TranslationEventArgs e) { XDocument xDocument = XDocument.Parse(e.DataTranslated); bool isExist = xDocument.Descendants("DetectedLang").Any(); if (isExist) { var makeInfo = from tr in xDocument.Descendants("DetectedLang").Attributes("lang") select tr.Value; string result = BuildValue(makeInfo); if (result == "ru") { lang = "en"; } else { lang = "ru"; } if (LanguageDetected != null) { LanguageDetected(this, null); } } else { var makeInfo = from tr in xDocument.Descendants("text") select tr.Value; Translated = BuildValue(makeInfo); } }
void translation_DontReachable(object sender, TranslationEventArgs e) { MessageBox.Show(e.DataTranslated, "Ошибка соединения", MessageBoxButton.OK, MessageBoxImage.Error); }