public CounterSetEntity GetCounterSet(string groupID, string name) { TableOperation retrieveOperation = TableOperation.Retrieve <CounterSetEntity>(groupID, name); TableResult result = _counterSet.ExecuteRetriveOperation(retrieveOperation); if (result.Result == null) { return(null); } CounterSetEntity entity = (CounterSetEntity)result.Result; return(entity); }
public CounterSet CreateCounterSet(string groupID, string name, string description = null) { if (GetCounterSet(groupID, name) != null) { throw new CounterSetAlreadyExistException(); } CounterSet cs = new CounterSet(); cs.Group = groupID; cs.Name = name; cs.Description = description; cs.RecordCount = 0; cs.LastUpdateTime = DateTime.UtcNow; CounterSetEntity entity = cs; TableOperation insertOperation = TableOperation.Insert(entity); _counterSet.Execute(insertOperation); return(entity); }
public void InsertCounterRecord(CounterRecord record, string name, string groupID) { int id; DynamicTableEntity entity = CounterRecordHelper.ToTableEntity(record, "pk", "rk"); int loopCount = 0; while (true) { try { CounterSetEntity counterSet = GetCounterSet(groupID, name); if (counterSet == null) { throw new CounterSetNotFoundException(); } id = counterSet.RecordCount; counterSet.RecordCount++; TableOperation updateOperation = TableOperation.InsertOrReplace(counterSet); _counterSet.Execute(updateOperation); break; } catch (Exception e) { loopCount++; if (loopCount >= 100) { throw e; } } } entity.PartitionKey = ToRecordPK(groupID, name); entity.RowKey = ToRecordRK(id); TableOperation insertOperation = TableOperation.Insert(entity); _counterRecord.Execute(insertOperation); }