public static void PopulatePostCommentsAndReactions()

in Functions/Code/Facebook/FacebookUtillity/MainETL.cs [83:178]


        public static void PopulatePostCommentsAndReactions(DataTable postsDataTable, DataTable commentsDataTable,
            DataTable reactionsDataTable, List<JObject> posts, string page, JObject pageObj)
        {
            foreach (var postPayload in posts)
            {
                foreach (var post in postPayload["data"])
                {
                    DataRow postRow = postsDataTable.NewRow();
                    postRow["Id"] = post["id"];
                    postRow["Created Date"] = post["created_time"];
                    postRow["Message"] = post["message"];
                    postRow["From Id"] = post["from"]?["id"];
                    int maxLength = 0;
                    if (post["from"]?["name"] != null)
                    {
                        maxLength = Math.Min((post["from"]["name"].ToString().Length), 100);
                    }
                    postRow["From Name"] = post["from"]?["name"].ToString().Substring(0, maxLength);
                    postRow["Media"] = post["picture"];
                    postRow["Page"] = page;
                    postRow["PageId"] = pageObj["id"].ToString();
                    postRow["PageDisplayName"] = pageObj["name"];

                    if (post["comments"]["data"].Count() == 100)
                    {
                        postRow["Total Comments"] = Utility.ConvertToLong(post["comments"]["summary"]["total_count"]); ;
                    }
                    else
                    {
                        postRow["Total Comments"] = post["comments"]["data"].Count();
                    }

                    postsDataTable.Rows.Add(postRow);


                    foreach (var comment in post["comments"]["data"])
                    {

                        DataRow commentRow = commentsDataTable.NewRow();
                        commentRow["Id"] = comment["id"];
                        commentRow["Created Date"] = comment["created_time"];
                        commentRow["Message"] = comment["message"];
                        commentRow["From Id"] = comment["from"]?["id"];
                        if (comment["from"]?["name"] != null)
                        {
                            maxLength = Math.Min(comment["from"]["name"].ToString().Length, 100);
                        }
                        commentRow["From Name"] = comment["from"]?["name"].ToString().Substring(0, maxLength);
                        commentRow["Post Id"] = post["id"];
                        commentRow["Page"] = page;
                        commentRow["PageId"] = pageObj["id"].ToString();
                        commentRow["PageDisplayName"] = pageObj["name"];
                        commentsDataTable.Rows.Add(commentRow);
                    }


                    DataRow likeRow = reactionsDataTable.NewRow();
                    likeRow["Id"] = post["id"];
                    likeRow["Reaction Type"] = "Like";
                    likeRow["Count"] = Utility.ConvertToLong(post["reactions_like"]["summary"]["total_count"]);

                    DataRow hahaRow = reactionsDataTable.NewRow();
                    hahaRow["Id"] = post["id"];
                    hahaRow["Reaction Type"] = "Haha";
                    hahaRow["Count"] = Utility.ConvertToLong(post["reactions_haha"]["summary"]["total_count"]);

                    DataRow sadRow = reactionsDataTable.NewRow();
                    sadRow["Id"] = post["id"];
                    sadRow["Reaction Type"] = "Sad";
                    sadRow["Count"] = Utility.ConvertToLong(post["reactions_sad"]["summary"]["total_count"]);

                    DataRow loveRow = reactionsDataTable.NewRow();
                    loveRow["Id"] = post["id"];
                    loveRow["Reaction Type"] = "Love";
                    loveRow["Count"] = Utility.ConvertToLong(post["reactions_love"]["summary"]["total_count"]);

                    DataRow angryRow = reactionsDataTable.NewRow();
                    angryRow["Id"] = post["id"];
                    angryRow["Reaction Type"] = "Angry";
                    angryRow["Count"] = Utility.ConvertToLong(post["reactions_angry"]["summary"]["total_count"]);

                    DataRow wowRow = reactionsDataTable.NewRow();
                    wowRow["Id"] = post["id"];
                    wowRow["Reaction Type"] = "Wow";
                    wowRow["Count"] = Utility.ConvertToLong(post["reactions_wow"]["summary"]["total_count"]);

                    reactionsDataTable.Rows.Add(likeRow);
                    reactionsDataTable.Rows.Add(hahaRow);
                    reactionsDataTable.Rows.Add(sadRow);
                    reactionsDataTable.Rows.Add(loveRow);
                    reactionsDataTable.Rows.Add(angryRow);
                    reactionsDataTable.Rows.Add(wowRow);

                }
            }
        }