public async Task ChangeBalanceAsync(string traderId, string currency, double delta) { var partitionKey = TraderBalanceEntity.GeneratePartitionKey(traderId); var rowKey = TraderBalanceEntity.GenerateRowKey(currency); var entity = await _tableStorage.ReplaceAsync(partitionKey, rowKey, itm => { itm.Amount += delta; return(itm); }); if (entity != null) { return; } entity = TraderBalanceEntity.Create(traderId, currency); entity.Amount = delta; await _tableStorage.InsertAsync(entity); }
public async Task <IEnumerable <ITraderBalance> > GetAsync(string traderId) { var partitionKey = TraderBalanceEntity.GeneratePartitionKey(traderId); return(await _tableStorage.GetDataAsync(partitionKey)); }