Esempio n. 1
0
        public async Task <ActionResult> AnalyzeAllMyPosts(bool runImports = true)
        {
            try
            {
                if (runImports)
                {
                    await ImportMyPosts();
                }
            }
            catch (Exception ex)
            {
            }
            Models.Entities.Facebook.PostsAnalysis objPostanalysis = null;
            using (DataAccess.MoodDetectorContext ctx = new DataAccess.MoodDetectorContext())
            {
                ctx.Configuration.AutoDetectChangesEnabled = false;
                ctx.Database.CommandTimeout = 3600;;
                var userPosts = ctx.FacebookUserPosts
                                .Include("FacebookUserPostSentiments")
                                .Include("FacebookUserPostKeyPhrases")
                                .Include("FacebookProfile")
                                .Include("FacebookProfile.FacebookPersonalityInsights")
                                .Include("FacebookProfile.FacebookPersonalityInsights.FacebookPersonalityInsightsPersonalities")
                                .Include("FacebookProfile.FacebookPersonalityInsights.FacebookPersonalityInsightsBehaviors")
                                .Include("FacebookProfile.FacebookPersonalityInsights.FacebookPersonalityInsightsNeeds")
                                .Include("FacebookProfile.FacebookPersonalityInsights.FacebookPersonalityInsightsValues")
                                .ToList()
                                //.Where(p=>p.FacebookUserPostKeyPhrases.Count() > 0 && p.FacebookUserPostSentiments.Count() > 0).ToList()
                ;
                objPostanalysis = new Models.Entities.Facebook.PostsAnalysis(userPosts);
            }
            await Task.Yield();

            return(View(objPostanalysis));
        }
Esempio n. 2
0
        private static async Task InsertPostsSentiment(PTI.CognitiveServicesClient.MSCognitiveServices.Sentiment.SentimentRequest req, string MSCognitiveServicesAccessToken)
        {
            PTI.CognitiveServicesClient.CognitiveServicesClient objCSClient =
                new PTI.CognitiveServicesClient.CognitiveServicesClient(MSCognitiveServicesAccessToken);
            int totalPages = (int)Math.Ceiling((decimal)req.documents.Count() / (decimal)1000);

            for (int iPage = 0; iPage < totalPages; iPage++)
            {
                var reqBatch = req.documents.Skip(iPage * 1000).Take(1000);
                var tmpreq   = new PTI.CognitiveServicesClient.MSCognitiveServices.Sentiment.SentimentRequest();
                tmpreq.documents = reqBatch.ToArray();
                var sentimentResponse = await objCSClient.GetSentiment(tmpreq);

                using (MoodDetector.DataAccess.MoodDetectorContext ctx =
                           new DataAccess.MoodDetectorContext())
                {
                    ctx.Configuration.AutoDetectChangesEnabled = false;
                    foreach (var singleSentimentRecord in sentimentResponse.documents)
                    {
                        var userPost = ctx.FacebookUserPosts.Where(p => p.PostId == singleSentimentRecord.id).FirstOrDefault();
                        var objNewSentimentRecord = new DataAccess.FacebookUserPostSentiment();
                        objNewSentimentRecord.FacebookUserPostId = userPost.FacebookUserPostId;
                        objNewSentimentRecord.Score = singleSentimentRecord.score;
                        ctx.FacebookUserPostSentiments.Add(objNewSentimentRecord);
                    }
                    ctx.SaveChanges();
                }
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 private static void SaveToDatabase(List <Models.Entities.Facebook.MyPosts> lstMyPosts)
 {
     using (MoodDetector.DataAccess.MoodDetectorContext ctx = new DataAccess.MoodDetectorContext())
     {
         foreach (var singleUserPostPage in lstMyPosts)
         {
             foreach (var singleUserPost in singleUserPostPage.data)
             {
                 MoodDetector.DataAccess.FacebookProfile objProfile =
                     ctx.FacebookProfiles.Where(p => p.ProfileId == singleUserPost.from.id).FirstOrDefault();
                 if (objProfile == null)
                 {
                     objProfile = new DataAccess.FacebookProfile()
                     {
                         DateRecordCreated = DateTime.UtcNow,
                         ProfileId         = singleUserPost.from.id,
                         Username          = singleUserPost.from.name
                     };
                     ctx.FacebookProfiles.Add(objProfile);
                     ctx.SaveChanges();
                 }
                 MoodDetector.DataAccess.FacebookUserPost objUserPost =
                     ctx.FacebookUserPosts.Where(p => p.PostId == singleUserPost.id).FirstOrDefault();
                 if (objUserPost == null)
                 {
                     objUserPost                   = new DataAccess.FacebookUserPost();
                     objUserPost.DatePosted        = singleUserPost.created_time.ToUniversalTime();
                     objUserPost.Caption           = singleUserPost.caption;
                     objUserPost.Description       = singleUserPost.description;
                     objUserPost.From              = singleUserPost.from.name;
                     objUserPost.Message           = singleUserPost.message;
                     objUserPost.Name              = singleUserPost.name;
                     objUserPost.PostId            = singleUserPost.id;
                     objUserPost.FacebookProfileId = objProfile.FacebookProfileId;
                     objUserPost.Status_Type       = singleUserPost.status_type;
                     objUserPost.Story             = singleUserPost.story;
                     objUserPost.Type              = singleUserPost.type;
                     ctx.FacebookUserPosts.Add(objUserPost);
                 }
             }
             ctx.SaveChanges();
         }
     }
 }
Esempio n. 5
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();
                 }
             }
         }
     }
 }
Esempio n. 6
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);
         }
     }
 }
Esempio n. 7
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);
         }
     }
 }
Esempio n. 8
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);
         }
     }
 }