public override Task <object?> ExecuteAsync(IAggregateCommand command) { VerifyNotDeleted(); VerifyCommand(command); switch (command) { case CreateAssetFolder createAssetFolder: return(CreateReturnAsync(createAssetFolder, async c => { await GuardAssetFolder.CanCreate(c, assetQuery); Create(c); return Snapshot; })); case MoveAssetFolder moveAssetFolder: return(UpdateReturnAsync(moveAssetFolder, async c => { await GuardAssetFolder.CanMove(c, assetQuery, Snapshot.Id, Snapshot.ParentId); Move(c); return Snapshot; })); case RenameAssetFolder renameAssetFolder: return(UpdateReturn(renameAssetFolder, c => { GuardAssetFolder.CanRename(c); Rename(c); return Snapshot; })); case DeleteAssetFolder deleteAssetFolder: return(Update(deleteAssetFolder, c => { GuardAssetFolder.CanDelete(c); Delete(c); })); default: throw new NotSupportedException(); } }
public override Task <CommandResult> ExecuteAsync(IAggregateCommand command) { switch (command) { case CreateAssetFolder c: return(CreateReturnAsync(c, async create => { await GuardAssetFolder.CanCreate(create, assetQuery); Create(create); return Snapshot; })); case MoveAssetFolder move: return(UpdateReturnAsync(move, async c => { await GuardAssetFolder.CanMove(c, Snapshot, assetQuery); Move(c); return Snapshot; })); case RenameAssetFolder rename: return(UpdateReturn(rename, c => { GuardAssetFolder.CanRename(c); Rename(c); return Snapshot; })); case DeleteAssetFolder delete: return(Update(delete, c => { GuardAssetFolder.CanDelete(c); Delete(c); })); default: throw new NotSupportedException(); } }