public static async Task <bool> PopulateAll(string sqlConn, string schema, string cognitiveKey, string client, string secret, string date) { string token = await FacebookUtility.GetAccessTokenAsync(client, secret); string[] pages = SqlUtility.GetPages(sqlConn, schema); List <JObject> posts = new List <JObject>(); foreach (var pageToSearch in pages) { string page = pageToSearch.Replace(" ", ""); try { var pageObj = await FacebookUtility.GetPage(page, token); // Get Facebook Posts posts = await FacebookUtility.GetPostsAsync(page, date, token); // Get All Data Tables var commentsDataTable = DataTableUtility.GetCommentsDataTable(); var hashTagDataTable = DataTableUtility.GetHashTagDataTable(); var keyPhraseDataTable = DataTableUtility.GetKeyPhraseDataTable(); var postDataTable = DataTableUtility.GetPostsDataTable(); var reactionsDataTable = DataTableUtility.GetReactionsDataTable(); var sentimentDataTable = DataTableUtility.GetSentimentDataTable(); PopulatePostCommentsAndReactions(postDataTable, commentsDataTable, reactionsDataTable, posts, page, pageObj); // Populate Sentiment Dictionary <string, string> items = new Dictionary <string, string>(); CognitiveUtility.PopulateDictionary(items, postDataTable); CognitiveUtility.PopulateDictionary(items, commentsDataTable); var payloads = CognitiveUtility.GetPayloads(items); await CognitiveUtility.GetSentimentAsync(payloads, sentimentDataTable, cognitiveKey); await CognitiveUtility.GetKeyPhraseAsync(payloads, keyPhraseDataTable, cognitiveKey); CognitiveUtility.GetHashTags(postDataTable, hashTagDataTable); CognitiveUtility.GetHashTags(commentsDataTable, hashTagDataTable); // Bulk Insert SqlUtility.BulkInsert(sqlConn, postDataTable, schema + "." + "StagingPosts"); SqlUtility.BulkInsert(sqlConn, sentimentDataTable, schema + "." + "StagingSentiment"); SqlUtility.BulkInsert(sqlConn, commentsDataTable, schema + "." + "StagingComments"); SqlUtility.BulkInsert(sqlConn, keyPhraseDataTable, schema + "." + "StagingKeyPhrase"); SqlUtility.BulkInsert(sqlConn, reactionsDataTable, schema + "." + "StagingReactions"); SqlUtility.BulkInsert(sqlConn, hashTagDataTable, schema + "." + "StagingHashTags"); // Debugging var errorDataTable = DataTableUtility.GetErrorDataTable(); DataRow errorRow = errorDataTable.NewRow(); errorRow["Date"] = date; errorRow["Error"] = ""; errorRow["Posts"] = page + ":" + JToken.FromObject(posts).ToString(); errorDataTable.Rows.Add(errorRow); SqlUtility.BulkInsert(sqlConn, errorDataTable, schema + "." + "StagingError"); } catch (Exception e) { var errorDataTable = DataTableUtility.GetErrorDataTable(); DataRow errorRow = errorDataTable.NewRow(); errorRow["Date"] = date; errorRow["Error"] = e.ToString(); errorRow["Posts"] = page + ":" + JToken.FromObject(posts).ToString(); errorDataTable.Rows.Add(errorRow); SqlUtility.BulkInsert(sqlConn, errorDataTable, schema + "." + "StagingError"); throw; } } return(true); }