public async Task <CommandResult <IReadOnlyCollection <TransactionTypeDto> > > GetTransactionTypesByBudgetIdAsync(GetTransactionTypesByBudgetIdRequest request, CancellationToken cancellationToken)
        {
            var parameters = new { request, cancellationToken };

            try
            {
                if (request == null)
                {
                    return(ExceptionExtensions.GetBadResponse <IReadOnlyCollection <TransactionTypeDto> >(parameters));
                }
            }

            catch (Exception e)
            {
                return(e.GetBadResponse <IReadOnlyCollection <TransactionTypeDto> >(parameters));
            }

            var validator        = new GetTransactionTypesByBudgetIdRequestValidator();
            var validationResult = await validator.ValidateAsync(request, cancellationToken);

            if (!validationResult.IsValid)
            {
                return(validationResult.GetBadResponse <IReadOnlyCollection <TransactionTypeDto> >(parameters));
            }

            try
            {
                var dtos = await _moduleImpl.GetTransactionTypesByBudgetIdAsync(request, cancellationToken);

                if (dtos == null)
                {
                    return(CommandResult <IReadOnlyCollection <TransactionTypeDto> > .NotFound());
                }

                return(CommandResult <IReadOnlyCollection <TransactionTypeDto> > .Ok(dtos));
            }

            catch (Exception e)
            {
                return(e.GetInternalServerErrorResponse <IReadOnlyCollection <TransactionTypeDto> >(parameters));
            }
        }
Beispiel #2
0
        public async Task <IReadOnlyCollection <TransactionTypeDto> > GetTransactionTypesByBudgetIdAsync(GetTransactionTypesByBudgetIdRequest request, CancellationToken cancellationToken)
        {
            var caller = CallerExtensions.LogCaller();
            var dtos   = await GetAsync(() => _transactionTypeService.GetTransactionTypesByBudgetId(request.BudgetId), caller.Method, cancellationToken);

            return(dtos);
        }