public Task DeleteAsync(Guid id) { return(ManagerInvoker.Current.InvokeAsync(this, async() => { ExecutionContext.Current.OperationType = OperationType.Delete; Cleaner.CleanUp(id); if (_deleteOnPreValidateAsync != null) { await _deleteOnPreValidateAsync(id).ConfigureAwait(false); } MultiValidator.Create() .Add(id.Validate(nameof(id)).Mandatory()) .Additional((__mv) => _deleteOnValidate?.Invoke(__mv, id)) .Run().ThrowOnError(); if (_deleteOnBeforeAsync != null) { await _deleteOnBeforeAsync(id).ConfigureAwait(false); } await _dataService.DeleteAsync(id).ConfigureAwait(false); if (_deleteOnAfterAsync != null) { await _deleteOnAfterAsync(id).ConfigureAwait(false); } })); }
public Task DeleteAsync(Guid id) => ManagerInvoker.Current.InvokeAsync(this, async() => { Cleaner.CleanUp(id); await(_deleteOnPreValidateAsync?.Invoke(id) ?? Task.CompletedTask).ConfigureAwait(false); await MultiValidator.Create() .Add(id.Validate(nameof(id)).Mandatory()) .Additional((__mv) => _deleteOnValidate?.Invoke(__mv, id)) .RunAsync(throwOnError: true).ConfigureAwait(false); await(_deleteOnBeforeAsync?.Invoke(id) ?? Task.CompletedTask).ConfigureAwait(false); await _dataService.DeleteAsync(id).ConfigureAwait(false); await(_deleteOnAfterAsync?.Invoke(id) ?? Task.CompletedTask).ConfigureAwait(false); }, BusinessInvokerArgs.Delete);