/// <summary>
        /// Identify language. Identifies the language of the input text.
        /// </summary>
        /// <param name="text">Input text in UTF-8 format.</param>
        /// <param name="customData">Custom data object to pass data including custom request headers.</param>
        /// <returns><see cref="IdentifiedLanguages" />IdentifiedLanguages</returns>
        public IdentifiedLanguages Identify(string text, Dictionary <string, object> customData = null)
        {
            if (string.IsNullOrEmpty(text))
            {
                throw new ArgumentNullException(nameof(text));
            }
            IdentifiedLanguages result = null;

            try
            {
                IClient client;
                client = this.Client.WithAuthentication(this.UserName, this.Password);
                var restRequest = client.PostAsync($"{this.Endpoint}/v2/identify");

                restRequest.WithBodyContent(new StringContent(text, Encoding.UTF8, HttpMediaType.TEXT_PLAIN));
                if (customData != null)
                {
                    restRequest.WithCustomData(customData);
                }
                result = restRequest.As <IdentifiedLanguages>().Result;
                if (result == null)
                {
                    result = new IdentifiedLanguages();
                }
                result.CustomData = restRequest.CustomData;
            }
            catch (AggregateException ae)
            {
                throw ae.Flatten();
            }

            return(result);
        }
        public IEnumerator TestIdentify()
        {
            conn = Substitute.For <RESTConnector>();
            service.Connector = conn;

            var identifyMockResponse = new DetailedResponse <IdentifiedLanguages>
            {
                Result = new IdentifiedLanguages()
                {
                    Languages = new List <IdentifiedLanguage>()
                    {
                        new IdentifiedLanguage()
                        {
                            Language = "en"
                        }
                    }
                }
            };

            conn.Send(
                Arg.Do <RESTConnector.Request>(
                    req => {
                if (((RequestObject <IdentifiedLanguages>)req).Callback != null)
                {
                    Assert.IsTrue(conn.URL == "https://gateway.watsonplatform.net/language-translator/api/v3/identify");
                    ((RequestObject <IdentifiedLanguages>)req).Callback(identifyMockResponse, null);
                }
            }
                    ));

            IdentifiedLanguages identifyResponse = null;

            service.Identify(
                callback: (DetailedResponse <IdentifiedLanguages> response, IBMError error) =>
            {
                Log.Debug("LanguageTranslatorServiceV3UnitTests", "ListIdentify result: {0}", response.Response);
                identifyResponse = response.Result;
                Assert.IsNotNull(identifyResponse);
                Assert.IsNotNull(identifyResponse.Languages);
                Assert.IsTrue(identifyResponse.Languages.Count > 0);
                Assert.IsNull(error);
            },
                text: "Hello world!"
                );

            while (identifyResponse == null)
            {
                yield return(null);
            }
        }
        /// <summary>
        /// Identify language.
        ///
        /// Identifies the language of the input text.
        /// </summary>
        /// <param name="text">Input text in UTF-8 format.</param>
        /// <param name="customData">Custom data object to pass data including custom request headers.</param>
        /// <returns><see cref="IdentifiedLanguages" />IdentifiedLanguages</returns>
        public IdentifiedLanguages Identify(string text, Dictionary <string, object> customData = null)
        {
            if (string.IsNullOrEmpty(text))
            {
                throw new ArgumentNullException(nameof(text));
            }

            if (string.IsNullOrEmpty(VersionDate))
            {
                throw new ArgumentNullException("versionDate cannot be null.");
            }

            IdentifiedLanguages result = null;

            try
            {
                IClient client = this.Client;
                if (_tokenManager != null)
                {
                    client = this.Client.WithAuthentication(_tokenManager.GetToken());
                }
                if (_tokenManager == null)
                {
                    client = this.Client.WithAuthentication(this.UserName, this.Password);
                }

                var restRequest = client.PostAsync($"{this.Endpoint}/v3/identify");

                restRequest.WithArgument("version", VersionDate);
                restRequest.WithBodyContent(new StringContent(text, Encoding.UTF8, HttpMediaType.TEXT_PLAIN));
                if (customData != null)
                {
                    restRequest.WithCustomData(customData);
                }

                restRequest.WithHeader("X-IBMCloud-SDK-Analytics", "service_name=language_translator;service_version=v3;operation_id=Identify");
                result = restRequest.As <IdentifiedLanguages>().Result;
                if (result == null)
                {
                    result = new IdentifiedLanguages();
                }
                result.CustomData = restRequest.CustomData;
            }
            catch (AggregateException ae)
            {
                throw ae.Flatten();
            }

            return(result);
        }
Ejemplo n.º 4
0
        public IdentifiedLanguages Identify(string _text)
        {
            IdentifiedLanguages result = null;

            try
            {
                result =
                    this.Client.WithAuthentication(this.UserName, this.Password)
                    .PostAsync($"{this.Endpoint}{PATH_IDENTIFY}")
                    .WithHeader("accept", HttpMediaType.APPLICATION_JSON)
                    .WithBodyContent(new StringContent(_text, Encoding.UTF8, HttpMediaType.TEXT_PLAIN))
                    .As <IdentifiedLanguages>()
                    .Result;
            }
            catch (AggregateException ae)
            {
                throw ae.Flatten();
            }

            return(result);
        }
Ejemplo n.º 5
0
        public void Identify_Success()
        {
            IClient client = this.CreateClient();

            IRequest request = Substitute.For <IRequest>();

            client.PostAsync(Arg.Any <string>())
            .Returns(request);

            request.WithHeader(Arg.Any <string>(), HttpMediaType.APPLICATION_JSON)
            .Returns(request);

            request.WithBodyContent(Arg.Any <HttpContent>())
            .Returns(request);

            IdentifiedLanguages response = new IdentifiedLanguages()
            {
                Languages = new List <IdentifiedLanguage>()
                {
                    new IdentifiedLanguage()
                    {
                        Confidence = 1,
                        Language   = "language"
                    }
                }
            };

            request.As <IdentifiedLanguages>()
            .Returns(Task.FromResult(response));

            LanguageTranslatorService service =
                new LanguageTranslatorService(client);

            IdentifiedLanguages identifiedLanguages = service.Identify("any text");

            Assert.IsNotNull(identifiedLanguages);
            client.Received().PostAsync(Arg.Any <string>());
            Assert.IsTrue(identifiedLanguages.Languages.Count == 1);
            Assert.IsTrue(identifiedLanguages.Languages.First().Confidence == 1);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Identify language. Identifies the language of the input text.
        /// </summary>
        /// <param name="text">Input text in UTF-8 format.</param>
        /// <returns><see cref="IdentifiedLanguages" />IdentifiedLanguages</returns>
        public IdentifiedLanguages Identify(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                throw new ArgumentNullException(nameof(text));
            }
            IdentifiedLanguages result = null;

            try
            {
                var request = this.Client.WithAuthentication(this.UserName, this.Password)
                              .PostAsync($"{this.Endpoint}/v2/identify");
                request.WithBodyContent(new StringContent(text, Encoding.UTF8, HttpMediaType.TEXT_PLAIN));
                result = request.As <IdentifiedLanguages>().Result;
            }
            catch (AggregateException ae)
            {
                throw ae.Flatten();
            }

            return(result);
        }
        public IEnumerator TestIdentify()
        {
            Log.Debug("LanguageTranslatorServiceV3IntegrationTests", "Attempting to Identify...");
            IdentifiedLanguages identifyResponse = null;

            service.Identify(
                callback: (DetailedResponse <IdentifiedLanguages> response, IBMError error) =>
            {
                Log.Debug("LanguageTranslatorServiceV3IntegrationTests", "Identify result: {0}", response.Response);
                identifyResponse = response.Result;
                Assert.IsNotNull(identifyResponse);
                Assert.IsNotNull(identifyResponse.Languages);
                Assert.IsTrue(identifyResponse.Languages.Count > 0);
                Assert.IsNull(error);
            },
                text: spanishText
                );

            while (identifyResponse == null)
            {
                yield return(null);
            }
        }
Ejemplo n.º 8
0
 private void OnIdentify(IdentifiedLanguages identifiedLanguages, Dictionary <string, object> customData)
 {
     Log.Debug("ExampleLanguageTranslator.OnIdentify()", "Language Translator - Identify response: {0}", customData["json"].ToString());
     _identifyTested = true;
 }