public Task <ShardWriteOperation> GetShardWriteOperationAsync(string transacionId) { if (ShardWriteOperations.ContainsKey(transacionId)) { return(Task.FromResult(ShardWriteOperations[transacionId])); } return(Task.FromResult <ShardWriteOperation>(null)); }
public Task <bool> MarkShardWriteOperationAppliedAsync(string operationId) { if (ShardWriteOperations.ContainsKey(operationId)) { return(Task.FromResult(ShardWriteOperations[operationId].Applied = true)); } return(Task.FromResult(false)); }
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)); }
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)); }
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)); }
public int GetTotalShardWriteOperationsCount(Guid shardId) { return(ShardWriteOperations.Count()); }
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))); }
public Task <IEnumerable <ShardWriteOperation> > GetAllShardWriteOperationsAsync(Guid shardId) { return(Task.FromResult(SystemExtension.Clone(ShardWriteOperations.Select(so => so.Value)))); }
public Task <bool> AddShardWriteOperationAsync(ShardWriteOperation operation) { return(Task.FromResult(ShardWriteOperations.TryAdd(operation.Id, SystemExtension.Clone(operation)))); }
public async Task <bool> RemoveShardWriteOperationAsync(Guid shardId, int pos) { return(ShardWriteOperations.TryRemove((await GetShardWriteOperationAsync(shardId, pos)).Id, out _)); }