static string ProtoMessageToString(ProtoMessage msg) { if (!msg.payloadSpecified) return "ERROR in ProtoMessage: Corrupted execution event, no payload found"; var _str = "ProtoMessage{"; switch ((ProtoPayloadType)msg.payloadType) { case ProtoPayloadType.PROTO_MESSAGE: var _msg = Utils.Deserialize<ProtoMessage>(msg.payload); _str += ProtoMessageToString(_msg); break; case ProtoPayloadType.PING_REQ: var _ping_req = Utils.Deserialize<ProtoPingReq>(msg.payload); _str += "PingRequest{timestamp:" + _ping_req.timestamp.ToString() + "}"; break; case ProtoPayloadType.PING_RES: var _ping_res = Utils.Deserialize<ProtoPingRes>(msg.payload); _str += "PingResponse{timestamp:" + _ping_res.timestamp + "}"; break; case ProtoPayloadType.HEARTBEAT_EVENT: var _hb = Utils.Deserialize<ProtoHeartbeatEvent>(msg.payload); _str += "Heartbeat"; break; case ProtoPayloadType.ERROR_RES: var _err = Utils.Deserialize<ProtoErrorRes>(msg.payload); _str += "ErrorResponse{errorCode:" + _err.errorCode + (_err.descriptionSpecified ? ", description:" + _err.description : "") + "}"; break; default: _str += OpenApiMessageToString(msg); break; } _str += (msg.clientMsgIdSpecified ? ", clientMsgId:" + msg.clientMsgId : "") + (msg.payloadSpecified ? ", payloadString:" + msg.payload : "") + "}"; return _str; }
public ProtoMessage CreateMessage(uint payloadType, byte[] payload = null, string clientMsgId = null) { var protoMsg = new ProtoMessage(); protoMsg.payloadType = payloadType; if (payload != null) protoMsg.payload = payload; if (clientMsgId != null) protoMsg.clientMsgId = clientMsgId; return protoMsg; }
static string OpenApiMessageToString(ProtoMessage msg) { switch ((ProtoOAPayloadType)msg.payloadType) { case ProtoOAPayloadType.OA_AUTH_REQ: var _auth_req = Utils.Deserialize<ProtoOAAuthReq>(msg.payload); return "AuthRequest{clientId:" + _auth_req.clientId + ", clientSecret:" + _auth_req.clientSecret + "}"; case ProtoOAPayloadType.OA_AUTH_RES: return "AuthResponse"; case ProtoOAPayloadType.OA_GET_SUBSCRIBED_ACCOUNTS_REQ: return "GetSubscribedAccountsRequest"; case ProtoOAPayloadType.OA_GET_SUBSCRIBED_ACCOUNTS_RES: var _subscr_res = Utils.Deserialize<ProtoOAGetSubscribedAccountsRes>(msg.payload); var _subscr_res_str = "GetSubscribedAccountsResponse{"; var _subscr_count = _subscr_res.accountId.Count; foreach (var accountId in _subscr_res.accountId) _subscr_res_str += "accountId:" + accountId.ToString() + (--_subscr_count == 0 ? "" : ", "); return _subscr_res_str + "}"; case ProtoOAPayloadType.OA_SUBSCRIBE_FOR_TRADING_EVENTS_REQ: var _subscr_req = Utils.Deserialize<ProtoOASubscribeForTradingEventsReq>(msg.payload); return "SubscrbeTradingEventsRequest{accountId:" + _subscr_req.accountId.ToString() + ", accessToken:" + _subscr_req.accessToken + "}"; case ProtoOAPayloadType.OA_SUBSCRIBE_FOR_TRADING_EVENTS_RES: return "SubscrbeTradingEventsResponse"; case ProtoOAPayloadType.OA_UNSUBSCRIBE_FROM_TRADING_EVENTS_REQ: var _unsubscr_req = Utils.Deserialize<ProtoOAUnsubscribeFromTradingEventsReq>(msg.payload); return "UnsubscrbeTradingEventsRequest{accountId:" + _unsubscr_req.accountId + "}"; case ProtoOAPayloadType.OA_UNSUBSCRIBE_FROM_TRADING_EVENTS_RES: return "UnsubscrbeTradingEventsResponse"; case ProtoOAPayloadType.OA_EXECUTION_EVENT: return OpenApiExecEventsToString(msg); case ProtoOAPayloadType.OA_CANCEL_ORDER_REQ: return "CancelOrderRequest{}"; case ProtoOAPayloadType.OA_CREATE_ORDER_REQ: return "CreateOrderRequest{}"; case ProtoOAPayloadType.OA_CLOSE_POSITION_REQ: return "ClosePositionRequest{}"; case ProtoOAPayloadType.OA_AMEND_ORDER_REQ: return "AmendOrderRequest{}"; case ProtoOAPayloadType.OA_AMEND_POSITION_SL_TP_REQ: return "AmendPositionRequest{}"; case ProtoOAPayloadType.OA_SUBSCRIBE_FOR_SPOTS_REQ: return "SubscribeForSpotsRequest{}"; case ProtoOAPayloadType.OA_SUBSCRIBE_FOR_SPOTS_RES: return "SubscribeForSpotsResponse{}"; case ProtoOAPayloadType.OA_UNSUBSCRIBE_FROM_SPOTS_REQ: return "UnsubscribeFromSpotsRequest{}"; case ProtoOAPayloadType.OA_UNSUBSCRIBE_FROM_SPOTS_RES: return "UnsubscribeFromSpotsResponse{}"; case ProtoOAPayloadType.OA_GET_SPOT_SUBSCRIPTION_REQ: return "GetSpotSubscriptionRequest{}"; case ProtoOAPayloadType.OA_GET_SPOT_SUBSCRIPTION_RES: return "GetSpotSubscriptionResponse{}"; case ProtoOAPayloadType.OA_GET_ALL_SPOT_SUBSCRIPTIONS_REQ: return "GetAllSpotSubscriptionsRequest{}"; case ProtoOAPayloadType.OA_GET_ALL_SPOT_SUBSCRIPTIONS_RES: String _all_str = "GetAllSpotSubscriptionsResponse{"; ProtoOAGetAllSpotSubscriptionsRes _all_res = Utils.Deserialize<ProtoOAGetAllSpotSubscriptionsRes>(msg.payload); _all_str += "subscriptions=["; foreach (ProtoOASpotSubscription subscription in _all_res.spotSubscriptions) { _all_str += "{AccountId=" + subscription.accountId + ", SubscriptionId=" + subscription.subscriptionId + ", SymbolNamesList=["; foreach (String symbolName in subscription.symbolNames) { _all_str += symbolName + ", "; } _all_str += "]}, "; } _all_str += "]}"; return _all_str; case ProtoOAPayloadType.OA_SPOT_EVENT: var _spot_event = Utils.Deserialize<ProtoOASpotEvent>(msg.payload); return "SpotEvent{subscriptionId:" + _spot_event.subscriptionId + ", symbolName:" + _spot_event.symbolName + ", bidPrice:" + (_spot_event.bidPriceSpecified ? _spot_event.bidPrice.ToString() : " ") + ", askPrice:" + (_spot_event.askPriceSpecified ? _spot_event.askPrice.ToString() : " ") + "}"; default: return "unknown"; } }
static public string ToString(ProtoMessage msg) { return ProtoMessageToString(msg); }
static string OpenApiExecEventsToString(ProtoMessage msg) { if ((ProtoOAPayloadType)msg.payloadType != ProtoOAPayloadType.OA_EXECUTION_EVENT) return "ERROR in OpenApiExecutionEvents: Wrong message type"; if (!msg.payloadSpecified) return "ERROR in OpenApiExecutionEvents: Corrupted execution event, no payload found"; var _msg = Utils.Deserialize<ProtoOAExecutionEvent>(msg.payload); var _str = OpenApiExecutionTypeToString(_msg.executionType) + "{" + OpenApiOrderToString(_msg.order) + ", " + OpenApiPositionToString(_msg.position) + (_msg.reasonCodeSpecified ? ", reasonCode:" + _msg.reasonCode : ""); return _str + "}"; }