public async Task <IActionResult> AcceptedCards(string processor)
        {
            AdminCommandResponse <IList <CardType> > result;

            using (var authorizerService = _authorizerFactory.Create(processor))
            {
                if (authorizerService is null)
                {
                    return(NotFound(
                               ErrorResponseDto.FromMissingProcessor(processor)
                               ));
                }

                result = await authorizerService.GetAcceptedCardTypesAsync();
            }

            if (result.Success)
            {
                return(Ok(new CardTypesResponseDto(result)));
            }
            else
            {
                return(BadRequest(ErrorResponseDto.FromProcessorResponse(result)));
            }
        }
        public async Task <IActionResult> Transaction([FromBody] TransactionDto transaction, string processor)
        {
            var transDef = _mapper.Map <TransactionDto, TransactionRequest>(transaction);

            TransactionResponse result;

            using (var authorizerService = _authorizerFactory.Create(processor))
            {
                if (authorizerService is null)
                {
                    return(BadRequest(ErrorResponseDto.FromMissingProcessor(processor)));
                }

                result = await authorizerService.ProcessTransactionAsync(transDef);
            }

            switch (result.ResultCode)
            {
            case BaseResponse.ResultCodesEnum.InternalProcessorError:
            case BaseResponse.ResultCodesEnum.CommunicationsError:
                return(StatusCode(500, ErrorResponseDto.FromProcessorResponse(result)));

            case BaseResponse.ResultCodesEnum.NotReady:
            case BaseResponse.ResultCodesEnum.InvalidParametersError:
            case BaseResponse.ResultCodesEnum.ProcessorError:
                return(BadRequest(ErrorResponseDto.FromProcessorResponse(result)));

            default:
                return(Ok(new TransactionResponseDto(result)));
            }
        }