Пример #1
0
        public Task <AccountDetail?> GetDetailAsync(string?accountId)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                EntityBase.CleanUp(accountId);
                if (_getDetailOnPreValidateAsync != null)
                {
                    await _getDetailOnPreValidateAsync(accountId).ConfigureAwait(false);
                }

                MultiValidator.Create()
                .Add(accountId.Validate(nameof(accountId)).Mandatory())
                .Additional((__mv) => _getDetailOnValidate?.Invoke(__mv, accountId))
                .Run().ThrowOnError();

                if (_getDetailOnBeforeAsync != null)
                {
                    await _getDetailOnBeforeAsync(accountId).ConfigureAwait(false);
                }
                var __result = await AccountDataSvc.GetDetailAsync(accountId).ConfigureAwait(false);
                if (_getDetailOnAfterAsync != null)
                {
                    await _getDetailOnAfterAsync(__result, accountId).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }
Пример #2
0
        public Task <AccountCollectionResult> GetAccountsAsync(AccountArgs?args, PagingArgs?paging)
        {
            return(ManagerInvoker.Default.InvokeAsync(this, async() =>
            {
                ExecutionContext.Current.OperationType = OperationType.Read;
                EntityBase.CleanUp(args);
                if (_getAccountsOnPreValidateAsync != null)
                {
                    await _getAccountsOnPreValidateAsync(args, paging).ConfigureAwait(false);
                }

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

                if (_getAccountsOnBeforeAsync != null)
                {
                    await _getAccountsOnBeforeAsync(args, paging).ConfigureAwait(false);
                }
                var __result = await AccountDataSvc.GetAccountsAsync(args, paging).ConfigureAwait(false);
                if (_getAccountsOnAfterAsync != null)
                {
                    await _getAccountsOnAfterAsync(__result, args, paging).ConfigureAwait(false);
                }
                Cleaner.Clean(__result);
                return __result;
            }));
        }