private async Task InsertPersonalityInsights(PersonalityInsightsRequest personalityInsightsReq, string piUsername, string piPassword, string facebookUserId) { DataAccess.FacebookProfile userProfile = null; WatsonCSClient objWatsonCsClient = new WatsonCSClient(piUsername, piPassword); var personalityInsights = await objWatsonCsClient.GetProfile(personalityInsightsReq); using (DataAccess.MoodDetectorContext ctx = new DataAccess.MoodDetectorContext()) { if (userProfile == null) { userProfile = ctx.FacebookProfiles.Where(p => p.ProfileId == facebookUserId).FirstOrDefault(); } DataAccess.FacebookPersonalityInsight daPI = new DataAccess.FacebookPersonalityInsight(); daPI.ProcessedLanguage = personalityInsights.Response.processed_language; daPI.WordCount = personalityInsights.Response.word_count; daPI.JsonRequest = personalityInsights.JsonRequest; daPI.FacebookProfileId = userProfile.FacebookProfileId; ctx.FacebookPersonalityInsights.Add(daPI); ctx.SaveChanges(); ProcessPersonality(personalityInsights.Response, ctx, daPI); ProcessNeeds(personalityInsights.Response, ctx, daPI); ProcessBehavior(personalityInsights.Response, ctx, daPI); ProcessValues(personalityInsights.Response, ctx, daPI); ProcessConsumptionPreferences(personalityInsights.Response, ctx, daPI); ctx.SaveChanges(); } await Task.Yield(); }
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(); } } } } }
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); } } }
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); } } }
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); } } }