Beispiel #1
0
        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);
        }
        private void Process_Unsubscribe_Spots_Res()
        {
            ProtoOAUnsubscribeSpotsRes args = Serializer.Deserialize <ProtoOAUnsubscribeSpotsRes>(_processorMemoryStream);

            Log.Info("ProtoOAUnsubscribeSpotsRes:: " +
                     $"ctidTraderAccountId: {args.ctidTraderAccountId}");

            OnUnsubscribeSpotsResReceived?.Invoke(args);
        }
Beispiel #3
0
        private void OnUnsubscribeSpotsResponse(ProtoOAUnsubscribeSpotsRes e, string clientMsgId)
        {
            var streamMessage = new StreamMessage <ProtoOAUnsubscribeSpotsRes>(e, clientMsgId);

            _unsubscribeSpotsResponseStream.OnNext(streamMessage);
        }