Esempio n. 1
0
        public void TestCloseOrder()
        {
            CreateOrderEuResponse response = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                             .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                                             .AddCustomerDetails(Item.IndividualCustomer()
                                                                 .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                                             .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                             .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                             .SetOrderDate(TestingTool.DefaultTestDate)
                                             .SetCurrency(TestingTool.DefaultTestCurrency)
                                             .UseInvoicePayment()
                                             .DoRequest();

            Assert.That(response.ResultCode, Is.EqualTo(0));
            Assert.That(response.Accepted, Is.True);

            CancelOrderResponse closeResponse = WebpayAdmin.CancelOrder(SveaConfig.GetDefaultConfig())
                                                .SetOrderId(response.CreateOrderResult.SveaOrderId)
                                                .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                                .CancelInvoiceOrder()
                                                .DoRequest();

            Assert.That(closeResponse.ResultCode, Is.EqualTo(0));
            Assert.That(response.Accepted, Is.True);
        }
Esempio n. 2
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            CancelOrderResponse response = new CancelOrderResponse();


            return(response);
        }
Esempio n. 3
0
        public void Handle(PayedOrderRequest message)
        {
            var response = new CancelOrderResponse();
            var service  = new HotelOrderService();

            try
            {
                var order = service.GetModel(message.OrderId);
                if (CheckStatus(order))
                {
                    response.Success = service.Update(message.OrderId,
                                                      HotelStatusManager.OrderStatus.Payed.StatusId.ToString());
                }
                else
                {
                    response.Success = false;
                }
            }
            catch
            {
                response.Success = false;
            }

            _bus.Reply(response);
        }
Esempio n. 4
0
        public async Task <ApiResult <CancelOrderResponse> > CancelOrder(string userId, TradeCancelType cancelType, int?orderId, string market)
        {
            try
            {
                var result = await TradeService.QueueCancel(new CancelTradeModel
                {
                    UserId     = userId,
                    Market     = market,
                    OrderId    = orderId,
                    CancelType = cancelType,
                    IsApi      = true
                });

                if (result.HasError)
                {
                    return(new ApiResult <CancelOrderResponse>(false, result.Error));
                }

                var response = new CancelOrderResponse
                {
                    CanceledOrders = result.CanceledOrders
                };
                return(new ApiResult <CancelOrderResponse>(true, response));
            }
            catch (Exception ex)
            {
                return(new ApiResult <CancelOrderResponse>(ex));
            }
        }
Esempio n. 5
0
        public async Task <ActionResult <CancelOrderResponse> > Cancel([FromRoute] CancelOrderRequest request)
        {
            _logger.LogInformation($"Cancel order service call for {request.OrderNumber}...");
            var response = new CancelOrderResponse();

            try
            {
                var order = await _orderProcessingService.GetOrderAsync(request.OrderNumber);

                await _orderProcessingService.CancelOrderAsync(order);

                response.OperationSucceded = true;
            }
            catch (OrderNotFoundException ex)
            {
                _logger.LogWarning($"{ex.Message}");
                return(NotFound(ex.Message));
            }
            catch (ValidationException ex)
            {
                _logger.LogWarning($"Validations failures: {ex.Message}");
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Exception occured while canceling order: {ex.Message} {ex.StackTrace}");
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
            return(Ok(response));
        }
        public override Task <CancelOrderResponse> CancelOrder(CancelOrderRequest request, grpc::ServerCallContext context)
        {
            Console.WriteLine("Handling Order cancellation request");


            var result = new CancelOrderResponse();

            try
            {
                var exists = orderManagementClient.OrderExists(new GetOrderRequest {
                    OrderID = request.OrderID
                });
                if (!exists.Exists)
                {
                    result.Canceled = false;
                    return(Task.FromResult(result));
                }
                var originalOrder = orderManagementClient.GetOrder(new GetOrderRequest {
                    OrderID = request.OrderID
                });

                var evt = new OrderCanceledEvent
                {
                    OrderID    = request.OrderID,
                    UserID     = request.UserID,
                    CreatedOn  = (ulong)DateTime.UtcNow.Ticks,
                    ActivityID = Guid.NewGuid().ToString(),
                };

                if (eventEmitter.EmitOrderCanceledEvent(evt))
                {
                    result.ConfirmationCode = Guid.NewGuid().ToString();
                    result.Canceled         = true;
                    foreach (var li in originalOrder.LineItems)
                    {
                        eventEmitter.EmitInventoryReleasedEvent(new InventoryReleasedEvent
                        {
                            SKU        = li.SKU,
                            ReleasedOn = (ulong)DateTime.UtcNow.Ticks,
                            Quantity   = li.Quantity,
                            OrderID    = request.OrderID,
                            UserID     = request.UserID,
                            EventID    = Guid.NewGuid().ToString()
                        });
                    }
                }
                else
                {
                    result.Canceled = false;
                }
                return(Task.FromResult(result));
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Failed to handle order cancellation {ex.ToString()}");
                result.Canceled = false;
                return(Task.FromResult(result));
            }
        }
        /// <summary>
        /// 取消接口
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public string CancelOrder(RequestData requestData)
        {
            var request  = _tongChengGateway.CheckCancelOrder(requestData.RequestBody);
            var data     = request.Data;
            var response = _ticketGateway.CancelOrder(new OrderCancelRequest
            {
                Body = new OrderCancelBody
                {
                    OrderInfo = new OrderCancelInfo
                    {
                        OrderId       = data.partnerOrderId,
                        OrderPrice    = 0,
                        OrderQuantity = data.tickets,
                        reason        = data.reason,
                        Seq           = data.orderSerialId
                    }
                }
            });

            if (response.Head.Code == "000000")
            {
                var tongChengResponse = new CancelOrderResponse
                {
                    refundStatus = 1,
                    remark       = "成功"
                };
                return(_tongChengGateway.CancelOrder(tongChengResponse));
            }
            else if (response.Head.Code == "114007")
            {
                var tongChengResponse = new CancelOrderResponse
                {
                    refundStatus = 3,
                    remark       = "订单取消失败,不支持部分取消"
                };
                return(_tongChengGateway.CancelOrder(tongChengResponse));
            }
            else if (response.Head.Code == "114004")
            {
                return(_tongChengGateway.ErrorResult(ResultCode.OrderNumberNotExist, response.Head.Describe));
            }
            else if (response.Head.Code == "114009" || response.Head.Code == "114013")
            {
                return(_tongChengGateway.ErrorResult(ResultCode.CancelOrderForConsume, response.Head.Describe));
            }
            else if (response.Head.Code == "114010")
            {
                return(_tongChengGateway.ErrorResult(ResultCode.CancelOrderForCancel, response.Head.Describe));
            }
            else if (response.Head.Code == "114011")
            {
                return(_tongChengGateway.ErrorResult(ResultCode.CancelOrderForExpired, response.Head.Describe));
            }
            else if (response.Head.Code == "114012")
            {
                return(_tongChengGateway.ErrorResult(ResultCode.Error, response.Head.Describe));
            }
            return(_tongChengGateway.ErrorResult(ResultCode.DataError, response.Head.Describe));
        }
Esempio n. 8
0
        public CancelOrderResponse CancelOrder(int order_id)
        {
            CancelOrderRequest  req      = new CancelOrderRequest(Nonce, order_id);
            string              response = SendRequest(req, "POST");
            CancelOrderResponse resp     = CancelOrderResponse.FromJSON(response);

            return(resp);
        }
        public void SendCancelOrderRequest_IfValidOrderAndTraderIdProvided_ReceiveResponseAndCommandShouldBePublishedOnDisruptor()
        {
            CancelOrderResponse response =
                _orderseService.CancelOrder(new CancelOrderCommand(new OrderId("12"), new TraderId("12")));

            _manualResetEvent.WaitOne(3000);
            Assert.NotNull(response);
            Assert.NotNull(_cancellation);
        }
        public static CancelOrderResponse Unmarshall(UnmarshallerContext context)
        {
            CancelOrderResponse cancelOrderResponse = new CancelOrderResponse();

            cancelOrderResponse.HttpResponse = context.HttpResponse;
            cancelOrderResponse.RequestId    = context.StringValue("CancelOrder.RequestId");
            cancelOrderResponse.ClusterId    = context.StringValue("CancelOrder.ClusterId");

            return(cancelOrderResponse);
        }
Esempio n. 11
0
        private BaseResponse ParseRawData(ByteBuffer buf)
        {
            MessageType msgType;

            try
            {
                msgType = (MessageType)lastHeader.msgId;
            }
            catch
            {
                return(null);
            }

            BaseResponse resp = null;

            if (msgType == MessageType.RejectResponse)
            {
                resp = RejectResponse.ReadFromBuffer(lastHeader, buf, offset);
            }

            else if (msgType == MessageType.NewOrderReport)
            {
                resp = OrderResponse.ReadFromBuffer(lastHeader, buf, offset);
            }

            else if (msgType == MessageType.CancelReport)
            {
                resp = CancelOrderResponse.ReadFromBuffer(lastHeader, buf, offset);
            }

            else if (msgType == MessageType.ExecutionReport)
            {
                resp = ExecutionReport.ReadFromBuffer(lastHeader, buf, offset);
            }

            else if (msgType == MessageType.MassCancelReport)
            {
                resp = MassCancelResponse.ReadFromBuffer(lastHeader, buf, offset);
            }

            if (resp != null)
            {
                if (!messagesParsedByType.TryGetValue(resp.GetType(), out var count))
                {
                    messagesParsedByType.Add(resp.GetType(), 1);
                }
                else
                {
                    messagesParsedByType[resp.GetType()] = count + 1;
                }
            }

            return(resp);
        }
Esempio n. 12
0
 public IMessageIn Visit(CancelOrderResponse msg)
 {
     Condition.Requires(_data, "data").IsNotNull();
     // {"order_id":"1476459990","result":"true"}
     if ((string)_data["result"] != "true")
     {
         _log.Error("Unexpected response to new future request. Ignoring it.");
         return(null);
     }
     msg.OrderId = (long)_data["order_id"];
     return(msg);
 }
        public async Task Consume(ConsumeContext <CancelOrderRequest> context)
        {
            var request = context.Message;

            Domain.Order order = await repo.GetOrder(request.OrderId);

            order.Cancel();
            order = await repo.SaveAsync(order);

            var response = new CancelOrderResponse(true, ResponseAction.Updated);

            await context.RespondAsync(response);
        }
Esempio n. 14
0
        /// <summary>
        /// 成功返回
        /// </summary>
        /// <param name="responseBody"></param>
        /// <returns></returns>
        public static string SuccessResult(CancelOrderBodyRespose responseBody)
        {
            var responseData = new CancelOrderResponse
            {
                header = new HeaderResponse
                {
                    resultCode    = ResultCode.Success,
                    resultMessage = "成功"
                },
                body = responseBody
            };

            return(Helper.SerializeToXml(responseData));
        }
Esempio n. 15
0
        public async Task <CancelOrderResponse> CancelOrderAsync()
        {
            (_, var returnWallet) = GetReturnWallet(_machineWallet, _depositMoney);
            _depositMoney         = 0;

            var response = new CancelOrderResponse()
            {
                Wallet    = returnWallet.ToWalletDto(),
                Message   = $"Order is cancelled.",
                IsSuccess = true
            };

            return(await Task.FromResult(response));
        }
Esempio n. 16
0
        public static CancelOrderResponse Unmarshall(UnmarshallerContext context)
        {
            CancelOrderResponse cancelOrderResponse = new CancelOrderResponse();

            cancelOrderResponse.HttpResponse = context.HttpResponse;
            cancelOrderResponse.RequestId    = context.StringValue("CancelOrder.RequestId");
            cancelOrderResponse.Code         = context.StringValue("CancelOrder.Code");
            cancelOrderResponse.Message      = context.StringValue("CancelOrder.Message");
            cancelOrderResponse.SubCode      = context.StringValue("CancelOrder.SubCode");
            cancelOrderResponse.SubMessage   = context.StringValue("CancelOrder.SubMessage");
            cancelOrderResponse.LogsId       = context.StringValue("CancelOrder.LogsId");
            cancelOrderResponse.Success      = context.BooleanValue("CancelOrder.Success");

            return(cancelOrderResponse);
        }
Esempio n. 17
0
        public async Task <bool> SfCancelOrder(string orderId)
        {
            Logger.InfoFormat("正在向顺丰取消订单,订单号:{0}", orderId);

            CancelOrderRequest request = new CancelOrderRequest();

            request.Head = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.ClientCode);

            request.OrderConfirm.OrderId  = orderId;
            request.OrderConfirm.DealType = "2";
            request.ServiceName           = "OrderConfirmService";
            request.Lang = "zh-CN";

            var url = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.Url);

            var checkword = await _settingManager.GetSettingValueAsync(Settings.ShunFeng.CheckWord);

            var result = await DoPostAsync(url, request.ToXml(), GetVerifyCode(request.ToXml(), checkword));

            var response = CancelOrderResponse.Parse(result);

            if (response.Head == "OK")
            {
                if (response.Body.ConfirmResponse.ResStatus == "2")
                {
                    Logger.InfoFormat("订单号:{0}取消寄件成功!", orderId);
                    return(true);
                }
                else
                {
                    Logger.ErrorFormat("订单号:{0}取消寄件失败,失败原因:{1}", orderId, "客户订单号与顺丰运单不匹配");
                    return(false);
                }
            }
            else
            {
                if (response.Error == "已消单")
                {
                    Logger.InfoFormat("订单号:{0}已消单", orderId);
                    return(true);
                }
                else
                {
                    Logger.ErrorFormat("订单号:{0}取消寄件失败,失败原因:{1}", orderId, response.Error);
                    return(false);
                }
            }
        }
Esempio n. 18
0
        public static CancelOrderResponse Unmarshall(UnmarshallerContext context)
        {
            CancelOrderResponse cancelOrderResponse = new CancelOrderResponse();

            cancelOrderResponse.HttpResponse = context.HttpResponse;
            cancelOrderResponse.RequestId    = context.StringValue("CancelOrder.RequestId");
            cancelOrderResponse.Success      = context.BooleanValue("CancelOrder.Success");
            cancelOrderResponse.Code         = context.StringValue("CancelOrder.Code");
            cancelOrderResponse.Message      = context.StringValue("CancelOrder.Message");

            CancelOrderResponse.CancelOrder_Data data = new CancelOrderResponse.CancelOrder_Data();
            data.HostId = context.StringValue("CancelOrder.Data.HostId");
            cancelOrderResponse.Data = data;

            return(cancelOrderResponse);
        }
Esempio n. 19
0
        public override Task <CancelOrderResponse> CancelOrder(CancelOrderRequest request, grpc::ServerCallContext context)
        {
            logger.LogInformation("Handling Order cancellation request");
            var result = new CancelOrderResponse();

            try
            {
                var agg = new OrderAggregate(request.OrderID);
                // TODO: load aggregate with order events
                var exists = orderManagementClient.OrderExists(new GetOrderRequest {
                    OrderID = request.OrderID
                });
                if (!exists.Exists)
                {
                    result.Canceled = false;
                    return(Task.FromResult(result));
                }
                var originalOrder = orderManagementClient.GetOrder(new GetOrderRequest {
                    OrderID = request.OrderID
                });

                var productAggregates = GetProductAggregates(originalOrder.LineItems.ToArray());

                IList <DomainEvent> evts = agg.Cancel(request.UserID, productAggregates);
                foreach (var evt in evts)
                {
                    this.eventEmitter.Emit(evt);
                }
                result.Canceled         = true;
                result.ConfirmationCode = Guid.NewGuid().ToString(); // unused
                return(Task.FromResult(result));
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Failed to cancel order");
                result.Canceled = false;
                return(Task.FromResult(result));
            }
        }
        /// <summary>
        /// Cancel order for specified symbol by clientOrderId
        /// </summary>
        /// <param name="symbol">Optional parameter to filter active orders by symbol</param>
        public OrderInformation SetCancelOrder(string clientOrderId, string symbol = "")
        {
            CancelOrderResponse response = hitbtcClient.SetCancelOrder(clientOrderId, symbol);

            OrderInformation result = new OrderInformation()
            {
                Id            = response.Id,
                ClientOrderId = response.ClientOrderId,
                Symbol        = response.Symbol,
                Side          = response.Side,
                Status        = response.Status,
                TypeOrder     = response.TypeOrder,
                TimeInForce   = response.TimeInForce,
                Quantity      = response.Quantity,
                Price         = response.Price,
                CumQuantity   = response.CumQuantity,
                CreatedAt     = response.CreatedAt,
                UpdatedAt     = response.UpdatedAt
            };

            return(result);
        }
Esempio n. 21
0
        public override void CancelOrder(Order order)
        {
            string timeStamp = TimeManager.GetUnixTimeStampSeconds().ToString();
            var    headers   = new Dictionary <string, string>();

            headers.Add("Timestamp", timeStamp);
            headers.Add("KEY", _publicKey);
            headers.Add("SIGN", _signer.GetSignStringRest("DELETE", _path + _wallet + $"/orders/{order.NumberMarket}", "", "", timeStamp));

            var result = _requestREST.SendGetQuery("DELETE", _host + _path + _wallet, $"/orders/{order.NumberMarket}", headers);

            CancelOrderResponse cancelResponse = JsonConvert.DeserializeObject <CancelOrderResponse>(result);

            if (cancelResponse.FinishAs == "canceled")
            {
                SendLogMessage($"Order num {order.NumberUser} canceled.", LogMessageType.Trade);
                order.State = OrderStateType.Cancel;
                OnOrderEvent(order);
            }
            else
            {
                SendLogMessage($"Error on order cancel num {order.NumberUser}", LogMessageType.Error);
            }
        }
 public void SendCancelOrderRequest_IfOrderIdIsNull_ReceiveInvalidOperationException()
 {
     CancelOrderResponse response =
         _orderseService.CancelOrder(new CancelOrderCommand(null, null));
 }
 /// <summary>
 /// 取消接口
 /// </summary>
 /// <param name="response"></param>
 /// <returns></returns>
 public string CancelOrder(CancelOrderResponse response)
 {
     return(Api.SuccessResult(response));
 }
Esempio n. 24
0
 public void CancelTrade(int order_id)
 {
     CancelOrderResponse cancel = api.CancelOrder(order_id);
 }
Esempio n. 25
0
        /// <summary>
        /// Process the incoming messages
        /// </summary>
        /// <param name="message">Incoming message</param>
        private void processMessage(string message)
        {
            // Deserialize the incoming command to check wich message has just arrived
            // The action property brings the command name
            switch (Command.Deserialize(message).action)
            {
            case KeepAlive.CLASSNAME:
            {           // If it is a KeepAlive message, just answer Quantsis Conneciton Box another KeepAlive message
                        //CheckAsyncTaskInProgress
                this.send(new KeepAlive().Serialize());
                break;
            }

            case NewOrderResponse.CLASSNAME:
            {           // If it is an NewOrderResponse message and it contains error, show the error message
                var cmd = NewOrderResponse.Deserialize(message);
                if (!cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case NewStopOrderResponse.CLASSNAME:
            {           // If it is an NewStopOrderResponse message and it contains error, show the error message
                var cmd = NewStopOrderResponse.Deserialize(message);
                if (!cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case NewStopGainLossOrderResponse.CLASSNAME:
            {           // If it is an NewStopGainLossOrderResponse message and it contains error, show the error message
                var cmd = NewStopGainLossOrderResponse.Deserialize(message);
                if (!cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case CancelOrderResponse.CLASSNAME:
            {           // If it is an CancelOrderResponse message and it contains error, show the error message
                var cmd = CancelOrderResponse.Deserialize(message);
                if (!cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case ExecutionReport.CLASSNAME:
            {           // If it is an ExecutionReport message, check if it was successful and updates the order list or show error message
                var cmd = ExecutionReport.Deserialize(message);
                if (cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                else
                {
                    NotifyOMS(cmd.ToString());
                }

                break;
            }

            case OrderListResponse.CLASSNAME:
            {           // If it is an OrderListResponse, check if it was successful. In negative case show error message.
                var cmd = OrderListResponse.Deserialize(message);
                if (!cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case PositionResponse.CLASSNAME:
            {           // If it is a Position Response, check if it was successful and updates the position list. In case of failure, show error messasge
                var cmd = PositionResponse.Deserialize(message);
                if (cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                else
                {
                    NotifyOMS(cmd.ToString());
                }

                break;
            }

            case QuoteResponse.CLASSNAME:
            {           // If it is a Quote Response, check if it was successful and logs the message
                var cmd = QuoteResponse.Deserialize(message);
                if (cmd.success)
                {
                    OnQuoteResponse(cmd);
                }
                else
                {
                    NotifyQCB(cmd.ToString());
                }
                break;
            }

            case QuoteUpdate.CLASSNAME:
            {           // If it is a Quote Update, check if it was successful and logs the message
                var cmd = QuoteUpdate.Deserialize(message);
                if (cmd.success)
                {
                    OnQuoteUpdate(cmd);
                }
                else
                {
                    NotifyQCB(cmd.ToString());
                }
                break;
            }

            case QuoteUnsubscribeResponse.CLASSNAME:
            {           // If it is a Quote Unsubscribe Response, check if it was successful
                var cmd = QuoteUnsubscribeResponse.Deserialize(message);
                if (cmd.success)
                {
                    NotifyOMS(cmd.ToString());
                }
                else
                {
                    NotifyOMS(cmd.ToString());
                }
                break;
            }

            case CandleResponse.CLASSNAME:
            {           // If it is a Quote Update, check if it was successful and logs the message
                var cmd = CandleResponse.Deserialize(message);
                if (cmd.success)
                {
                    if (cmd.candles != null)
                    {
                        if (cmd.candles.Count <= 0)
                        {
                            NotifyOMS("Nenhum foi possivel retornar nenhum candle para " + cmd.security + " - Timeframe: " + cmd.timeframe);
                        }
                        else
                        {
                            NotifyOMS("Dados Historicos Intraday para: " + cmd.security + " - Qtd de Candles: " + cmd.candles.Count + " - Timeframe: " + cmd.timeframe);
                            //foreach (Candle candle in cmd.candles)
                            //    this.mainForm.log(candle.ToString());
                        }
                    }
                }
                else
                {
                    NotifyOMS(cmd.ToString());
                }

                break;
            }

            // Candle Update
            case CandleUpdate.CLASSNAME:
            {           // If it is a Candle Update, check if it was successful and logs the message
                var cmd = CandleUpdate.Deserialize(message);

                if (cmd.success)
                {
                    if (cmd.candle != null)
                    {
                        switch (cmd.timeframe)
                        {
                        case CandleUpdate.TIMEFRAME_INTRADAY_1_MIN:
                            NotifyOMS("Candle Intraday Update: " + cmd.security + " - Last: " + cmd.candle.close + " - Time: " + cmd.candle.date);
                            break;

                        case CandleUpdate.TIMEFRAME_DAILY:
                            NotifyOMS("Candle Daily Update: " + cmd.security + " - Last: " + cmd.candle.close + " - Time: " + cmd.candle.date);
                            break;
                        }
                    }
                }
                //this.mainForm.updatePositions(cmd);
                else
                {
                    NotifyOMS(cmd.ToString());
                }

                break;
            }

            // QCB has disconnected (shut down)
            case Disconnect.CLASSNAME:
                this.disconnect();
                break;
            }
        }
 private void DisplayCancelOrderResponse(CancelOrderResponse cancelOrderResponse)
 {
     AppendReceiverBox($"CancelOrderResponse - OrdID: {cancelOrderResponse.OrderID}, ResultCode: {cancelOrderResponse.ResultCode}");
 }
Esempio n. 27
0
 public string Visit(CancelOrderResponse msg)
 {
     return(CancelOrder(msg.ProductType, msg.Currency));
 }
Esempio n. 28
0
        public override async Task <CancelOrderResponse> CancelAllOrders(CancelOrdersRequest request, ServerCallContext context)
        {
            MeResponseModel response;

            if (!string.IsNullOrEmpty(request.AssetPairId))
            {
                var result = await _validationService.ValidateAssetPairAsync(request.AssetPairId);

                if (result != null)
                {
                    var res = new CancelOrderResponse
                    {
                        Error = new ErrorResponseBody {
                            Code = ErrorCode.InvalidField, Message = result.Message
                        }
                    };

                    res.Error.Fields.Add(result.FieldName, result.Message);
                }

                bool?isBuy;

                if (request.OptionalSideCase == CancelOrdersRequest.OptionalSideOneofCase.None)
                {
                    isBuy = null;
                }
                else
                {
                    switch (request.Side)
                    {
                    case Side.Buy:
                        isBuy = true;
                        break;

                    case Side.Sell:
                        isBuy = false;
                        break;

                    default:
                        isBuy = null;
                        break;
                    }
                }

                var model = new LimitOrderMassCancelModel
                {
                    Id          = Guid.NewGuid().ToString(),
                    AssetPairId = request.AssetPairId,
                    ClientId    = context.GetClientId(),
                    IsBuy       = isBuy
                };

                response = await _matchingEngineClient.MassCancelLimitOrdersAsync(model);
            }
            else
            {
                var orders = await GetOrders(new LimitOrdersRequest(), context);

                if (orders.Body?.Orders.Any() ?? false)
                {
                    var orderIds = orders.Body.Orders.Select(x => x.Id).ToList();
                    response = await _matchingEngineClient.CancelLimitOrdersAsync(orderIds);
                }
                else
                {
                    response = new MeResponseModel {
                        Status = MeStatusCodes.Ok
                    };
                }
            }

            if (response == null)
            {
                return(new CancelOrderResponse
                {
                    Error = new ErrorResponseBody {
                        Code = ErrorCode.Runtime, Message = ErrorMessages.MeNotAvailable
                    }
                });
            }

            if (response.Status == MeStatusCodes.Ok)
            {
                return new CancelOrderResponse
                       {
                           Body = new CancelOrderResponse.Types.Body
                           {
                               Payload = true
                           }
                       }
            }
            ;

            return(new CancelOrderResponse
            {
                Error = new ErrorResponseBody {
                    Code = ErrorCode.Runtime, Message = response.Message ?? response.Status.ToString()
                }
            });
        }