コード例 #1
0
        private void OnGetClassifiersResp(RESTConnector.Request req, RESTConnector.Response resp)
        {
            Classifiers classifiers = new Classifiers();

            if (resp.Success)
            {
                try
                {
                    fsData   data = null;
                    fsResult r    = fsJsonParser.Parse(Encoding.UTF8.GetString(resp.Data), out data);
                    if (!r.Succeeded)
                    {
                        throw new WatsonException(r.FormattedMessages);
                    }

                    object obj = classifiers;
                    r = sm_Serializer.TryDeserialize(data, obj.GetType(), ref obj);
                    if (!r.Succeeded)
                    {
                        throw new WatsonException(r.FormattedMessages);
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Natural Language Classifier", "GetClassifiers Exception: {0}", e.ToString());
                    resp.Success = false;
                }
            }

            if (((GetClassifiersReq)req).Callback != null)
            {
                ((GetClassifiersReq)req).Callback(resp.Success ? classifiers : null);
            }
        }
コード例 #2
0
        private void OnGetClassifiersResp(RESTConnector.Request req, RESTConnector.Response resp)
        {
            Classifiers result = new Classifiers();
            fsData      data   = null;
            Dictionary <string, object> customData = ((GetClassifiersReq)req).CustomData;

            customData.Add(Constants.String.RESPONSE_HEADERS, resp.Headers);

            if (resp.Success)
            {
                try
                {
                    fsResult r = fsJsonParser.Parse(Encoding.UTF8.GetString(resp.Data), out data);
                    if (!r.Succeeded)
                    {
                        throw new WatsonException(r.FormattedMessages);
                    }

                    object obj = result;
                    r = _serializer.TryDeserialize(data, obj.GetType(), ref obj);
                    if (!r.Succeeded)
                    {
                        throw new WatsonException(r.FormattedMessages);
                    }

                    customData.Add("json", data);
                }
                catch (Exception e)
                {
                    Log.Error("NaturalLanguageClassifier.OnGetClassifiersResp()", "GetClassifiers Exception: {0}", e.ToString());
                    resp.Success = false;
                }
            }

            if (resp.Success)
            {
                if (((GetClassifiersReq)req).SuccessCallback != null)
                {
                    ((GetClassifiersReq)req).SuccessCallback(result, customData);
                }
            }
            else
            {
                if (((GetClassifiersReq)req).FailCallback != null)
                {
                    ((GetClassifiersReq)req).FailCallback(resp.Error, customData);
                }
            }
        }
コード例 #3
0
            private void GetClassifiers(Classifiers classifiers)
            {
                bool bFound = false;

                foreach (var c in classifiers.classifiers)
                {
                    if (c.name.ToLower().StartsWith(ClassifierName.ToLower()))
                    {
                        // now get the classifier details..
                        bFound = Service.GetClassifier(c.classifier_id, GetClassifier);
                        break;
                    }
                }

                if (!bFound)
                {
                    Log.Error("Natural Language Classifier", "Fail to find classifier {0}", ClassifierName);
                    Callback(null);
                }
            }
コード例 #4
0
 private void OnCheckServices(Classifiers classifiers)
 {
     if (m_Callback != null)
     {
         if (classifiers.classifiers.Length > 0)
         {
             foreach (var classifier in classifiers.classifiers)
             {
                 // check the status of one classifier, if it's listed as "Unavailable" then fail
                 if (!m_Service.GetClassifier(classifier.classifier_id, OnCheckService))
                 {
                     OnFailure("Failed to call GetClassifier()");
                     break;
                 }
                 else
                 {
                     m_GetClassifierCount += 1;
                 }
             }
         }
         else
         {
             if (m_Callback != null && m_Callback.Target != null)
             {
                 m_Callback(SERVICE_ID, true);     // no classifiers to check, just return success then..
             }
         }
     }
     else
     {
         if (m_Callback != null && m_Callback.Target != null)
         {
             m_Callback(SERVICE_ID, false);
         }
     }
 }