public async Task <string> CreateAsync(TodoTaskEntity entity) { entity.Id = await generator.NextAsync(); await store.Set(tasks => tasks.Append(entity)); return(entity.Id); }
public async Task Set(Func <IEnumerable <TodoTaskEntity>, IEnumerable <TodoTaskEntity> > setter) { await decoratee.Set(prev => { var next = setter(prev).ToArray(); foreach (var constraint in constraints) { constraint.ValidateAndThrow(next); } return(next); }); }
public async Task Set(Func <IEnumerable <TodoTaskEntity>, IEnumerable <TodoTaskEntity> > setter) { await semaphore.WaitAsync(); try { await decoratee.Set(setter); } finally { semaphore.Release(); } }