public async Task <ICommandResult <Star> > DeleteAsync(Star model) { // Validate if (model == null) { throw new ArgumentNullException(nameof(model)); } // Invoke StarDeleting subscriptions foreach (var handler in _broker.Pub <Star>(this, "StarDeleting")) { model = await handler.Invoke(new Message <Star>(model, this)); } var result = new CommandResult <Star>(); if (await _starStore.DeleteAsync(model)) { // Invoke StarDeleted subscriptions foreach (var handler in _broker.Pub <Star>(this, "StarDeleted")) { model = await handler.Invoke(new Message <Star>(model, this)); } // Return success return(result.Success()); } return(result.Failed(new CommandError("An unknown error occurred whilst attempting to delete a follow."))); }