public static async Task <TableResult> InsertOrMergeAsync(this CloudStorageAccount storageAccount, string tableName, ITableEntity entity)
        {
            var table = storageAccount.GetTableReference(tableName);

            var operation = TableOperation.InsertOrMerge(entity);

            return(await table.ExecuteAsync(operation));
        }
        public static async Task <T> RetrieveAsync <T>(this CloudStorageAccount storageAccount, string tableName, string partitionKey, string rowKey)
            where T : class, ITableEntity
        {
            var table = storageAccount.GetTableReference(tableName);

            var operation = TableOperation.Retrieve <T>(partitionKey, rowKey);
            var result    = await table.ExecuteAsync(operation);

            var entity = result.Result as T;

            return(entity);
        }
        public static async Task CreateIfNotExistsAsync(this CloudStorageAccount storageAccount, string tableName)
        {
            var table = storageAccount.GetTableReference(tableName);

            await table.CreateIfNotExistsAsync();
        }
 public CloudTable GetTableReference(string tableName, TableClientConfiguration tableClientConfiguration = null)
 {
     return(_storageAccount.GetTableReference(tableName, tableClientConfiguration));
 }