public RedisAggregateRootAtomicAction(IAggregateRootLock aggregateRootLock, IRevisionStore revisionStore, RedisAtomicActionOptions options) { if (ReferenceEquals(null, aggregateRootLock)) throw new ArgumentNullException(nameof(aggregateRootLock)); if (ReferenceEquals(null, revisionStore)) throw new ArgumentNullException(nameof(revisionStore)); if (ReferenceEquals(null, options)) throw new ArgumentNullException(nameof(options)); this.aggregateRootLock = aggregateRootLock; this.revisionStore = revisionStore; this.options = options; }
static void Main(string[] args) { var endPoint1 = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1001); var endPoints = new[] { endPoint1 }; var redlock = new RedisLockManager(endPoints); var aggregateRootLock = new RedisAggregateRootLock(redlock); var revisionStore = new RedisRevisionStore(endPoints); var options = new RedisAtomicActionOptions(); options.LockTtl = TimeSpan.FromSeconds(1); options.ShorTtl = TimeSpan.FromSeconds(1); var atomicAction = new RedisAggregateRootAtomicAction(aggregateRootLock, revisionStore, options); var id = new HeadquarterId("e0846069-2730-4d3c-bc80-470d6a521d99", "elders"); var result = atomicAction.Execute(id, 1, () => { }); Console.WriteLine(result.IsSuccessful); Console.WriteLine(result.Value); }