示例#1
0
        public async Task <IActionResult> ChechoutAsync([FromBody] ChechoutRequestModel model)
        {
            try
            {
                IPaymentRequest paymentRequest =
                    await _paymentRequestService.CheckoutAsync(model.MerchantId, model.PaymentRequestId, model.Force);

                IOrder order = await _orderService.GetAsync(paymentRequest.Id, paymentRequest.OrderId);

                return(Ok(Mapper.Map <OrderModel>(order)));
            }
            catch (AssetUnknownException assetEx)
            {
                await _log.WriteErrorAsync(nameof(OrdersController), nameof(ChechoutAsync),
                                           new { assetEx.Asset }.ToJson(), assetEx);

                return(BadRequest(ErrorResponse.Create(assetEx.Message)));
            }
            catch (MarkupNotFoundException markupEx)
            {
                await _log.WriteErrorAsync(nameof(OrdersController), nameof(ChechoutAsync),
                                           new { markupEx.MerchantId, markupEx.AssetPairId }.ToJson(), markupEx);

                return(BadRequest(ErrorResponse.Create(markupEx.Message)));
            }
            catch (Exception ex)
            {
                await _log.WriteErrorAsync(nameof(OrdersController), nameof(ChechoutAsync),
                                           model.ToJson(), ex);

                throw;
            }
        }
        public async Task <IActionResult> ChechoutAsync([FromBody] ChechoutRequestModel model)
        {
            try
            {
                IPaymentRequest paymentRequest =
                    await _paymentRequestService.CheckoutAsync(model.MerchantId, model.PaymentRequestId, model.Force);

                IOrder order = await _orderService.GetAsync(paymentRequest.Id, paymentRequest.OrderId);

                return(Ok(Mapper.Map <OrderModel>(order)));
            }
            catch (AssetUnknownException e)
            {
                _log.ErrorWithDetails(e, new { e.Asset });

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (AssetNetworkNotDefinedException e)
            {
                _log.ErrorWithDetails(e, new { e.AssetId });

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (MarkupNotFoundException e)
            {
                _log.ErrorWithDetails(e, new
                {
                    e.MerchantId,
                    e.AssetPairId
                });

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
            catch (PaymentRequestNotFoundException e)
            {
                _log.ErrorWithDetails(e, new
                {
                    e.MerchantId,
                    e.PaymentRequestId,
                    e.WalletAddress
                });

                return(NotFound(ErrorResponse.Create(e.Message)));
            }
        }