async void Update() { var inbuf = new byte[102400]; var segment = new ArraySegment <byte>(inbuf); if (!reading && client.State == WebSocketState.Open && ready) { reading = true; var result = await client.ReceiveAsync(segment, CancellationToken.None); switch (result.MessageType) { case WebSocketMessageType.Close: Debug.Log("Received close message. Status: " + result.CloseStatus + ". Description: " + result.CloseStatusDescription); ready = false; await client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); break; case WebSocketMessageType.Text: Debug.Log("Received text."); Translated translated = JsonConvert.DeserializeObject <Translated>(Encoding.UTF8.GetString(inbuf)); if (translated.type == "final") { StartCoroutine("coordinate", translated.recognition); } break; case WebSocketMessageType.Binary: Debug.Log("Received binary data: " + result.Count + " bytes."); break; } reading = false; } }
public void SetupTranslateLessResultSecond() { this.Setup(); var translated = new Translated[] { }; var message = new HttpResponseMessage(); message.StatusCode = HttpStatusCode.OK; message.Content = new StringContent(JsonConvert.SerializeObject(translated)); translatorContextMock.Setup(p => p.SendAsync(It.IsAny <HttpRequestMessage>())) .ReturnsAsync(message); }
/// <summary> /// /// </summary> /// <param name="lang"></param> /// <param name="text"></param> /// <returns></returns> public async Task <string[]> Translate(string lang, string[] text) { string baseAdress = "https://translate.yandex.net"; string urlParameter = "api/v1.5/tr.json/translate?key=" + ApiKey + "&lang=" + lang; foreach (var item in text) { urlParameter += "&text=" + item; } string jsonString = await GenerateJsonCall(baseAdress, urlParameter); Translated result = await JsonConvert.DeserializeObjectAsync <Translated>(jsonString); //TODO: Allow multiple text return(result.text); }
public void SetupTranslate(string key, string url) { this.Setup(); var translated = new Translated[] { new Translated() { translations = new Translation[] { new Translation() { text = ExpectedTranslatedText, to = "ja" }, new Translation() { text = "konchiwa", to = "ja" }, } } }; var message = new HttpResponseMessage(); message.StatusCode = HttpStatusCode.OK; message.Content = new StringContent(JsonConvert.SerializeObject(translated)); translatorContextMock.Setup(p => p.SendAsync(It.IsAny <HttpRequestMessage>())) .ReturnsAsync(message) .Callback <HttpRequestMessage>((msg) => { msg.Headers.TryGetValues("Ocp-Apim-Subscription-Key", out IEnumerable <string> keyValue); Assert.Equal(key, keyValue.FirstOrDefault()); Assert.Equal(url, msg.RequestUri.ToString()); System.Object[] body = new System.Object[] { new { Text = InputText } }; Assert.Equal(JsonConvert.SerializeObject(body), msg.Content.ReadAsStringAsync().GetAwaiter().GetResult()); }); }
public void CreateAlertTypes(string category) { Items = new Dictionary <Alert, List <Translated> >(); Register alertTypes; if (category == Constants.AlertCategoryDataset) { alertTypes = _registerService.GetRegister("Metadata kodelister", "Datasettvarsel"); } else if (category == Constants.AlertCategoryOperation) { alertTypes = _registerService.GetRegister("Metadata kodelister", "Driftsmeldinger"); } else { alertTypes = _registerService.GetRegister("Metadata kodelister", "Tjenestevarsel"); } foreach (var alertType in alertTypes.items.Cast <CodelistValue>()) { if (alertType.value != null) { var translationEnglish = alertType.Translations.Where(t => t.CultureName == Culture.EnglishCode).FirstOrDefault(); string nameTranslated = translationEnglish != null ? translationEnglish.Name : alertType.name; Translated translation = new Translated { AlertType = nameTranslated, Culture = Culture.EnglishCode }; List <Translated> translations = new List <Translated>(); translations.Add(translation); Items.Add(new Alert { Key = alertType.value, Value = alertType.name }, translations); } } }
private void Update(object sender, EventArgs args) { try { if (translatedElement == null || !translatedElement.Displayed) { translatedElement = driver.FindElementByXPath(translatedElementXPath); } //멈추거나 완료될때 호출하니까 주기가 짧아졌음. 고로 url을 새로 열어서 파싱하는게 더 나을수도 있음. var current = translatedElement.GetAttribute("data-text"); if (!string.Equals(TranslatedText, current)) { TranslatedText = current; Translated?.Invoke(TranslatedText); } } catch (Exception e) { translatedElement = null; } }