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); };
        }