Esempio n. 1
0
 public Task <ShardWriteOperation> GetShardWriteOperationAsync(string transacionId)
 {
     if (ShardWriteOperations.ContainsKey(transacionId))
     {
         return(Task.FromResult(ShardWriteOperations[transacionId]));
     }
     return(Task.FromResult <ShardWriteOperation>(null));
 }
Esempio n. 2
0
 public Task <bool> MarkShardWriteOperationAppliedAsync(string operationId)
 {
     if (ShardWriteOperations.ContainsKey(operationId))
     {
         return(Task.FromResult(ShardWriteOperations[operationId].Applied = true));
     }
     return(Task.FromResult(false));
 }
Esempio n. 3
0
        public Task <SortedDictionary <int, ShardWriteOperation> > GetAllObjectShardWriteOperationAsync(Guid shardId, Guid objectId)
        {
            var result = new SortedDictionary <int, ShardWriteOperation>();

            foreach (var operation in ShardWriteOperations.Where(so => so.Value.Data.Id == objectId && so.Value.Data.ShardId == shardId))
            {
                result.Add(operation.Value.Pos, operation.Value);
            }
            return(Task.FromResult(result));
        }
Esempio n. 4
0
        public Task <SortedDictionary <int, ShardWriteOperation> > GetShardWriteOperationsAsync(Guid shardId, int from, int to)
        {
            var writes = ShardWriteOperations.Where(swo => swo.Value.Data.ShardId == shardId && swo.Value.Pos >= from && swo.Value.Pos <= to);
            SortedDictionary <int, ShardWriteOperation> operations = new SortedDictionary <int, ShardWriteOperation>();

            foreach (var write in writes)
            {
                operations.Add(write.Value.Pos, write.Value);
            }
            return(Task.FromResult(operations));
        }
Esempio n. 5
0
        public Task <SortedDictionary <int, ShardWriteOperation> > GetAllUnappliedOperationsAsync(Guid shardId)
        {
            var sortedSWO = ShardWriteOperations.Where(swo => swo.Value.Data.ShardId == shardId).ToList();
            SortedDictionary <int, ShardWriteOperation> result = new SortedDictionary <int, ShardWriteOperation>();

            foreach (var operation in sortedSWO)
            {
                result.Add(operation.Value.Pos, operation.Value);
            }
            return(Task.FromResult(result));
        }
Esempio n. 6
0
 public int GetTotalShardWriteOperationsCount(Guid shardId)
 {
     return(ShardWriteOperations.Count());
 }
Esempio n. 7
0
 public Task <ShardWriteOperation> GetShardWriteOperationAsync(Guid shardId, int syncPos)
 {
     return(Task.FromResult(SystemExtension.Clone(ShardWriteOperations.Where(swo => swo.Value.Data.ShardId == shardId && swo.Value.Pos == syncPos).FirstOrDefault().Value)));
 }
Esempio n. 8
0
 public Task <IEnumerable <ShardWriteOperation> > GetAllShardWriteOperationsAsync(Guid shardId)
 {
     return(Task.FromResult(SystemExtension.Clone(ShardWriteOperations.Select(so => so.Value))));
 }
Esempio n. 9
0
 public Task <bool> AddShardWriteOperationAsync(ShardWriteOperation operation)
 {
     return(Task.FromResult(ShardWriteOperations.TryAdd(operation.Id, SystemExtension.Clone(operation))));
 }
Esempio n. 10
0
 public async Task <bool> RemoveShardWriteOperationAsync(Guid shardId, int pos)
 {
     return(ShardWriteOperations.TryRemove((await GetShardWriteOperationAsync(shardId, pos)).Id, out _));
 }