コード例 #1
0
        public bool GetProfile(OnGetProfile callback, string source,
                               string contentType           = ContentType.TextPlain,
                               string contentLanguage       = ContentLanguage.English,
                               string accept                = ContentType.ApplicationJson,
                               string acceptLanguage        = AcceptLanguage.English,
                               bool raw_scores              = false,
                               bool csv_headers             = false,
                               bool consumption_preferences = false,
                               string version               = PersonalityInsightsVersion.Version,
                               string data = default(string))
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            if (string.IsNullOrEmpty(source))
            {
                throw new ArgumentNullException("A JSON or Text source is required for GetProfile!");
            }

            RESTConnector connector = RESTConnector.GetConnector(Credentials, ProfileEndpoint);

            if (connector == null)
            {
                return(false);
            }

            GetProfileRequest req = new GetProfileRequest();

            req.Source     = source;
            req.Callback   = callback;
            req.Data       = data;
            req.OnResponse = GetProfileResponse;

            req.Parameters["raw_scores"]              = raw_scores.ToString();
            req.Parameters["csv_headers"]             = csv_headers.ToString();
            req.Parameters["consumption_preferences"] = consumption_preferences.ToString();
            req.Parameters["version"] = version;

            req.Headers["Content-Type"]     = contentType;
            req.Headers["Content-Language"] = contentLanguage;
            req.Headers["Accept"]           = accept;
            req.Headers["Accept-Language"]  = acceptLanguage;

            if (source.StartsWith(Application.dataPath))
            {
                string jsonData = default(string);
                jsonData = File.ReadAllText(source);
                req.Send = System.Text.Encoding.UTF8.GetBytes(jsonData);
            }
            else
            {
                req.Send = System.Text.Encoding.UTF8.GetBytes(source);
            }

            return(connector.Send(req));
        }
コード例 #2
0
        /// <summary>
        /// Uses Personality Insights to get the source profile.
        /// </summary>
        /// <returns><c>true</c>, if profile was gotten, <c>false</c> otherwise.</returns>
        /// <param name="callback">Callback.</param>
        /// <param name="source">Json or Text source. Json data must follow the ContentListContainer Model.</param>
        /// <param name="contentType">Content mime type.</param>
        /// <param name="contentLanguage">Content language.</param>
        /// <param name="accept">Accept mime type.</param>
        /// <param name="acceptLanguage">Accept language.</param>
        /// <param name="includeRaw">If set to <c>true</c> include raw.</param>
        /// <param name="headers">If set to <c>true</c> headers.</param>
        /// <param name="data">Data.</param>
        public bool GetProfile(OnGetProfile callback, string source,
                               string contentType     = DataModels.ContentType.TEXT_PLAIN,
                               string contentLanguage = DataModels.Language.ENGLISH,
                               string accept          = DataModels.ContentType.APPLICATION_JSON,
                               string acceptLanguage  = DataModels.Language.ENGLISH,
                               bool includeRaw        = false,
                               bool headers           = false,
                               string data            = default(string))
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            if (string.IsNullOrEmpty(source))
            {
                throw new ArgumentNullException("A JSON or Text source is required for GetProfile!");
            }

            RESTConnector connector = RESTConnector.GetConnector(SERVICE_ID, SERVICE_GET_PROFILE);

            if (connector == null)
            {
                return(false);
            }

            GetProfileRequest req = new GetProfileRequest();

            req.Callback   = callback;
            req.OnResponse = GetProfileResponse;

            req.Parameters["include_raw"] = includeRaw.ToString();
            req.Parameters["headers"]     = headers.ToString();

            req.Headers["Content-Type"]     = contentType;
            req.Headers["Content-Language"] = contentLanguage;
            req.Headers["Accept"]           = accept;
            req.Headers["Accept-Language"]  = acceptLanguage;

            string normalizedSource = source.Trim().ToLower();

            if (Path.GetExtension(normalizedSource).EndsWith(".json"))
            {
                string jsonData = default(string);
                jsonData = File.ReadAllText(source);
                req.Send = System.Text.Encoding.UTF8.GetBytes(jsonData);
            }
            else
            {
                req.Send = System.Text.Encoding.UTF8.GetBytes(source);
            }

            return(connector.Send(req));
        }