public async Task UnsubscribeFromSpots(long accountId, bool isLive, params long[] symbolIds) { VerifyConnection(); var client = GetClient(isLive); using var cancelationTokenSource = new CancellationTokenSource(); ProtoOAUnsubscribeSpotsRes receivedResponse = null; using var disposable = client.OfType <ProtoOAUnsubscribeSpotsRes>().Where(response => response.CtidTraderAccountId == accountId) .Subscribe(response => { receivedResponse = response; cancelationTokenSource.Cancel(); }); var requestMessage = new ProtoOAUnsubscribeSpotsReq { CtidTraderAccountId = accountId, }; requestMessage.SymbolId.AddRange(symbolIds); await SendMessage(requestMessage, ProtoOAPayloadType.ProtoOaUnsubscribeSpotsReq, client, cancelationTokenSource, () => receivedResponse is not null); }
public ProtoMessage CreateUnsubscribeFromSpotsRequest(long accountId, int symbolId, string clientMsgId = null) { var _msg = ProtoOAUnsubscribeSpotsReq.CreateBuilder(); _msg.SetCtidTraderAccountId(accountId); _msg.AddSymbolId(symbolId); return(CreateMessage((uint)_msg.PayloadType, _msg.Build().ToByteString(), clientMsgId)); }
private void btnUnSubscribeFromSpots_Click(object sender, EventArgs e) { var spotRequest = new ProtoOAUnsubscribeSpotsReq { CtidTraderAccountId = _accountID, }; spotRequest.SymbolId.Add(1); var message = new ProtoMessage { Payload = spotRequest.ToByteString(), PayloadType = (int)ProtoOAPayloadType.ProtoOaUnsubscribeSpotsReq }; Transmit(message); }
public static ProtoMessage Unsubscribe_Spots_Req(long ctidTraderAccountId, long[] symbolIDs) { ProtoOAUnsubscribeSpotsReq message = new ProtoOAUnsubscribeSpotsReq { payloadType = ProtoOAPayloadType.ProtoOaUnsubscribeSpotsReq, ctidTraderAccountId = ctidTraderAccountId, symbolIds = symbolIDs }; Log.Info("ProtoOAUnsubscribeSpotsReq:: " + $"ctidTraderAccountId: {ctidTraderAccountId}; " + $"symbolIds: [{string.Join("; ", symbolIDs)}]"); InnerMemoryStream.SetLength(0); Serializer.Serialize(InnerMemoryStream, message); return(Encode((uint)message.payloadType, InnerMemoryStream.ToArray())); }