Esempio n. 1
0
        public async Task SubscribeToLiveTrendbar(long accountId, bool isLive, long symbolId, ProtoOATrendbarPeriod period)
        {
            VerifyConnection();

            var client = GetClient(isLive);

            using var cancelationTokenSource = new CancellationTokenSource();

            ProtoOASubscribeLiveTrendbarRes receivedResponse = null;

            using var disposable = client.OfType <ProtoOASubscribeLiveTrendbarRes>().Where(response => response.CtidTraderAccountId == accountId)
                                   .Subscribe(response =>
            {
                receivedResponse = response;

                cancelationTokenSource.Cancel();
            });

            var requestMessage = new ProtoOASubscribeLiveTrendbarReq
            {
                CtidTraderAccountId = accountId,
                Period   = period,
                SymbolId = symbolId
            };

            await SendMessage(requestMessage, ProtoOAPayloadType.ProtoOaSubscribeLiveTrendbarReq, client, cancelationTokenSource, () => receivedResponse is not null);
        }
        private void Process_Subscribe_Live_Trendbar_Res()
        {
            ProtoOASubscribeLiveTrendbarRes args = Serializer.Deserialize <ProtoOASubscribeLiveTrendbarRes>(_processorMemoryStream);

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

            OnSubscribeLiveTrendbarResReceived?.Invoke(args);
        }