private static async Task <FacebookLikesEntity> InsertOrMergeEntityAsync(CloudTable table, FacebookLikesEntity entity) { if (entity == null) { throw new ArgumentNullException("entity"); } try { // Create the InsertOrReplace table operation TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity); // Execute the operation. TableResult result = await table.ExecuteAsync(insertOrMergeOperation); FacebookLikesEntity insertedCustomer = result.Result as FacebookLikesEntity; return(insertedCustomer); } catch (StorageException e) { MessageBox.Show(e.Message); throw; } }
private async void LikesAsync(string number_of_loaded_likes) { string tableName = "FacebookLikesData" + Guid.NewGuid().ToString().Substring(0, 5); // Create or reference an existing table CloudTable table = await Common.CreateTableAsync(tableName); var client = new FacebookClient(); client.AccessToken = this.access_token; //show user's profile picture dynamic me = client.Get("me/posts?fields=likes,message,created_time,full_picture&limit=" + number_of_loaded_likes); var facebookData = me.data; foreach (var element in facebookData) { if (element.message != null) { FacebookLikesEntity post = new FacebookLikesEntity(element.id, element.created_time) { Message_or_photo = element.message, Total_likes = 0 }; post = await InsertOrMergeEntityAsync(table, post); ListViewItem item = new ListViewItem(element.message); item.SubItems.Add(element.created_time); if (element.likes != null) { string x = Convert.ToString(element.likes.data.Count); item.SubItems.Add(x); TotalLikesForPosts(element.likes.data.Count, 0); post.Total_likes = element.likes.data.Count; await InsertOrMergeEntityAsync(table, post); } else { item.SubItems.Add("No likes for this post"); } postsList.Items.Add(item); } else if (element.full_picture != null) { FacebookLikesEntity post = new FacebookLikesEntity(element.id, element.created_time) { Message_or_photo = element.full_picture, Total_likes = 0 }; post = await InsertOrMergeEntityAsync(table, post); ListViewItem item = new ListViewItem(element.full_picture); item.SubItems.Add(element.created_time); if (element.likes != null) { string x = Convert.ToString(element.likes.data.Count); item.SubItems.Add(x); post.Total_likes = element.likes.data.Count; TotalLikesForPosts(element.likes.data.Count, 0); await InsertOrMergeEntityAsync(table, post); } else { item.SubItems.Add("No likes for this photo"); } postsList.Items.Add(item); } } this.deleteTables.Click += (sender, EventArgs) => { deleteTables_ClickAsync(sender, EventArgs, table); }; }