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))); } }