Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }