示例#1
0
        public async Task <GetProfileResults> GetProfile(PersonalityInsightsRequest request)
        {
            string currentDate   = DateTime.Now.ToString("yyyy-MM-dd");
            string getProfileUrl = "https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=" + currentDate + "&consumption_preferences=true";
            string token         = await this.GetTokenForPersonalityInsights();

            string        jsonRequest   = JsonConvert.SerializeObject(request);
            HttpClient    objHttpClient = new HttpClient();
            StringContent objStrContent =
                new StringContent(jsonRequest);

            objStrContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            objStrContent.Headers.Add("X-Watson-Authorization-Token", token);
            var response = await objHttpClient.PostAsync(getProfileUrl, objStrContent);

            string jsonResult = await response.Content.ReadAsStringAsync();

            PersonalityInsightsResponse objResult =
                JsonConvert.DeserializeObject <PersonalityInsightsResponse>(jsonResult);

            return(new GetProfileResults()
            {
                Response = objResult, JsonRequest = jsonRequest
            });
        }
示例#2
0
 private static void ProcessPersonality(PersonalityInsightsResponse personalityInsights, DataAccess.MoodDetectorContext ctx, DataAccess.FacebookPersonalityInsight daPI)
 {
     if (personalityInsights.personality != null)
     {
         foreach (var singlePersonalityRecord in personalityInsights.personality)
         {
             DataAccess.FacebookPersonalityInsightsPersonality daPersonality =
                 new DataAccess.FacebookPersonalityInsightsPersonality();
             daPersonality.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
             daPersonality.Category   = singlePersonalityRecord.category;
             daPersonality.Name       = singlePersonalityRecord.name;
             daPersonality.Percentile = singlePersonalityRecord.percentile;
             daPersonality.TraitId    = singlePersonalityRecord.trait_id;
             ctx.FacebookPersonalityInsightsPersonalities.Add(daPersonality);
             ctx.SaveChanges();
             long parentId = daPersonality.FacebookPersonalityInsightsPersonalityId;
             if (singlePersonalityRecord.children != null && singlePersonalityRecord.children.Count() > 0)
             {
                 foreach (var singlePersonalityChild in singlePersonalityRecord.children)
                 {
                     daPersonality = new DataAccess.FacebookPersonalityInsightsPersonality();
                     daPersonality.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
                     daPersonality.ParentFacebookPersonalityInsightsPersonalityId = parentId;
                     daPersonality.Category   = singlePersonalityChild.category;
                     daPersonality.Name       = singlePersonalityChild.name;
                     daPersonality.Percentile = singlePersonalityChild.percentile;
                     daPersonality.TraitId    = singlePersonalityChild.trait_id;
                     ctx.FacebookPersonalityInsightsPersonalities.Add(daPersonality);
                     ctx.SaveChanges();
                 }
             }
         }
     }
 }
示例#3
0
 private void ProcessConsumptionPreferences(PersonalityInsightsResponse personalityInsights, MoodDetectorContext ctx, FacebookPersonalityInsight daPI)
 {
     if (personalityInsights.consumption_preferences != null)
     {
         foreach (var singleConsumptionPreference in personalityInsights.consumption_preferences)
         {
             DataAccess.FacebookPersonalityInsightsConsumptionPreference daCP =
                 new FacebookPersonalityInsightsConsumptionPreference();
             daCP.PreferenceCategoryName        = singleConsumptionPreference.name;
             daCP.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
             daCP.PreferenceCategoryId          = singleConsumptionPreference.consumption_preference_category_id;
             ctx.FacebookPersonalityInsightsConsumptionPreferences.Add(daCP);
             ctx.SaveChanges();
             if (singleConsumptionPreference.consumption_preferences != null)
             {
                 foreach (var singleChildPreference in singleConsumptionPreference.consumption_preferences)
                 {
                     DataAccess.FacebookPersonalityInsightsConsumptionPreference daChildCP =
                         new FacebookPersonalityInsightsConsumptionPreference();
                     daChildCP.ParentFacebookPersonalityInsightsConsumptionPreferencesId =
                         daCP.FacebookPersonalityInsightsConsumptionPreferencesId;
                     daChildCP.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
                     daChildCP.PreferenceCategoryId          = singleChildPreference.consumption_preference_id;
                     daChildCP.PreferenceName  = singleChildPreference.name;
                     daChildCP.PreferenceScore = singleChildPreference.score;
                     ctx.FacebookPersonalityInsightsConsumptionPreferences.Add(daChildCP);
                 }
             }
             ctx.SaveChanges();
         }
     }
 }
示例#4
0
 private static void ProcessNeeds(PersonalityInsightsResponse personalityInsights, DataAccess.MoodDetectorContext ctx, DataAccess.FacebookPersonalityInsight daPI)
 {
     if (personalityInsights.needs != null)
     {
         foreach (var singleNeed in personalityInsights.needs)
         {
             DataAccess.FacebookPersonalityInsightsNeed daNeed =
                 new DataAccess.FacebookPersonalityInsightsNeed();
             daNeed.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
             daNeed.Category   = singleNeed.category;
             daNeed.Name       = singleNeed.name;
             daNeed.Percentile = singleNeed.percentile;
             daNeed.TraitId    = singleNeed.trait_id;
             ctx.FacebookPersonalityInsightsNeeds.Add(daNeed);
         }
     }
 }
示例#5
0
 private static void ProcessBehavior(PersonalityInsightsResponse personalityInsights, DataAccess.MoodDetectorContext ctx, DataAccess.FacebookPersonalityInsight daPI)
 {
     if (personalityInsights.needs != null)
     {
         foreach (var singleBehavior in personalityInsights.behavior)
         {
             DataAccess.FacebookPersonalityInsightsBehavior daBehavior =
                 new DataAccess.FacebookPersonalityInsightsBehavior();
             daBehavior.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
             daBehavior.Category   = singleBehavior.category;
             daBehavior.Name       = singleBehavior.name;
             daBehavior.Percentile = singleBehavior.percentage;
             daBehavior.TraitId    = singleBehavior.trait_id;
             ctx.FacebookPersonalityInsightsBehaviors.Add(daBehavior);
         }
     }
 }
示例#6
0
 private static void ProcessValues(PersonalityInsightsResponse personalityInsights, DataAccess.MoodDetectorContext ctx, DataAccess.FacebookPersonalityInsight daPI)
 {
     if (personalityInsights.values != null)
     {
         foreach (var singleValue in personalityInsights.values)
         {
             DataAccess.FacebookPersonalityInsightsValue daValues =
                 new DataAccess.FacebookPersonalityInsightsValue();
             daValues.FacebookPersonalityInsightsId = daPI.FacebookPersonalityInsightsId;
             daValues.Category   = singleValue.category;
             daValues.Name       = singleValue.name;
             daValues.Percentile = singleValue.percentile;
             daValues.TraitId    = singleValue.trait_id;
             ctx.FacebookPersonalityInsightsValues.Add(daValues);
         }
     }
 }