public JfdCollateralInquiryStateMachine RegisterMessage(CollateralInquiry request, CancellationToken cancellationToken)
        {
            var or = new JfdCollateralInquiryStateMachine(request, cancellationToken, this, Log);

            Requests[or.Id] = or;
            return(or);
        }
Пример #2
0
        /// <summary>
        /// Creates and returns a new <see cref="CollateralInquiry"/> FIX message.
        /// </summary>
        /// <param name="timeNow">The time now.</param>
        /// <returns>The FIX message.</returns>
        public static CollateralInquiry Create(ZonedDateTime timeNow)
        {
            Debug.NotDefault(timeNow, nameof(timeNow));

            var message = new CollateralInquiry();

            message.SetField(new CollInquiryID($"CI_{timeNow.TickOfDay}"));
            message.SetField(new TradingSessionID(Broker));
            message.SetField(new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES));

            return(message);
        }
        public Task <IReadOnlyCollection <CollateralReport> > GetCollateralAsync(CollateralInquiry collateralInquiry, CancellationToken cancellationToken)
        {
            EnsureCanHandleRequest();

            lock (RejectLock)
            {
                var request = _jfdCollateralHandler.RegisterMessage(collateralInquiry, cancellationToken);
                SendRequest(request.Message);
                RegisterForRejectResponse(request);
                var result = request.Send();
                return(result);
            }
        }
        public override async Task <IReadOnlyCollection <TradeBalanceModel> > GetTradeBalances(TimeSpan timeout)
        {
            var pr = new CollateralInquiry()
            {
                NoPartyIDs = new NoPartyIDs(1)
            };

            var partyGroup = new CollateralInquiry.NoPartyIDsGroup
            {
                PartyID = new PartyID("*")
            };

            pr.AddGroup(partyGroup);
            var cts = new CancellationTokenSource(timeout);

            var collateral = await _connector.GetCollateralAsync(pr, cts.Token);

            var models = _modelConverter.ConvertCollateral(collateral);

            return(models);
        }
        public async Task ShouldGetCollateral()
        {
            _connector.Start();
            WaitForState(FixConnectorState.Connected, 30);

            var pr = new CollateralInquiry()
            {
                NoPartyIDs = new NoPartyIDs(1)
            };

            var partyGroup = new CollateralInquiry.NoPartyIDsGroup
            {
                PartyID = new PartyID("*")
            };

            pr.AddGroup(partyGroup);


            var resp = await _connector.GetCollateralAsync(pr, CancellationToken.None);

            Assert.NotEmpty(resp);
        }
Пример #6
0
 public virtual void onMessage(CollateralInquiry message, QuickFix.SessionID session)
 {
     throw new QuickFix.UnsupportedMessageType();
 }
Пример #7
0
 public JfdCollateralInquiryStateMachine(CollateralInquiry positionsRequest, CancellationToken cancellationToken, IMessageHandler handler, ILog log) : base(positionsRequest, cancellationToken, handler, log)
 {
     positionsRequest.CollInquiryID = new CollInquiryID(Id);
 }