Beispiel #1
0
        public Task <PersonDetailCollectionResult> GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging)
        {
            return(ManagerInvoker.Current.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                Cleaner.CleanUp(args);
                if (_getDetailByArgsOnPreValidateAsync != null)
                {
                    await _getDetailByArgsOnPreValidateAsync(args, paging).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(args.Validate(nameof(args)).Entity(PersonArgsValidator.Default))
                .Additional((__mv) => _getDetailByArgsOnValidate?.Invoke(__mv, args, paging))
                .Run().ThrowOnError();

                if (_getDetailByArgsOnBeforeAsync != null)
                {
                    await _getDetailByArgsOnBeforeAsync(args, paging).ConfigureAwait(false);
                }
                var __result = await _dataService.GetDetailByArgsAsync(args, paging).ConfigureAwait(false);
                if (_getDetailByArgsOnAfterAsync != null)
                {
                    await _getDetailByArgsOnAfterAsync(__result, args, paging).ConfigureAwait(false);
                }
                return Cleaner.Clean(__result);
            }));
        }
Beispiel #2
0
        public Task <PersonDetailCollectionResult> GetDetailByArgsAsync(PersonArgs?args, PagingArgs?paging) => ManagerInvoker.Current.InvokeAsync(this, async() =>
        {
            Cleaner.CleanUp(args);
            await(_getDetailByArgsOnPreValidateAsync?.Invoke(args, paging) ?? Task.CompletedTask).ConfigureAwait(false);

            await MultiValidator.Create()
            .Add(args.Validate(nameof(args)).Entity().With <IValidator <PersonArgs> >())
            .Additional((__mv) => _getDetailByArgsOnValidate?.Invoke(__mv, args, paging))
            .RunAsync(throwOnError: true).ConfigureAwait(false);

            await(_getDetailByArgsOnBeforeAsync?.Invoke(args, paging) ?? Task.CompletedTask).ConfigureAwait(false);
            var __result = await _dataService.GetDetailByArgsAsync(args, paging).ConfigureAwait(false);
            await(_getDetailByArgsOnAfterAsync?.Invoke(__result, args, paging) ?? Task.CompletedTask).ConfigureAwait(false);
            return(Cleaner.Clean(__result));
        }, BusinessInvokerArgs.Read);