public virtual async Task <TValue> UpsertAsync(TValue entity) { var ky = GetKeyFromEntity(entity); var tableEntity = EntityConverter.ConvertTo(entity, ky.PartitionKey, ky.Id); var operation = TableOperation.InsertOrMerge(tableEntity); var result = await GetTable().ExecuteAsync(operation); return(result.Result as TValue); }
public virtual async Task <TValue> GetAsync(TKey key) { ValidateKey(key); var innerKey = GetKeyFromKey(key); var operation = TableOperation.Retrieve(innerKey.PartitionKey, innerKey.Id); var result = await GetTable().ExecuteAsync(operation); var item = EntityConverter.ConvertTo <TValue>((ITableEntity)result.Result); return(item); }
public virtual async Task <IEnumerable <TValue> > GetAllAsync() { TableContinuationToken token = null; var entities = new List <TValue>(); do { var queryResult = await GetTable().ExecuteQuerySegmentedAsync(new TableQuery(), token); foreach (var result in queryResult.Results) { var entity = EntityConverter.ConvertTo <TValue>(result); entities.Add(entity); } token = queryResult.ContinuationToken; } while (token != null); return(entities); }