Beispiel #1
0
        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);
                }
            }));
        }
Beispiel #2
0
        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);