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)); }
/// <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)); }