public JfdCollateralInquiryStateMachine RegisterMessage(CollateralInquiry request, CancellationToken cancellationToken) { var or = new JfdCollateralInquiryStateMachine(request, cancellationToken, this, Log); Requests[or.Id] = or; return(or); }
/// <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); }
public virtual void onMessage(CollateralInquiry message, QuickFix.SessionID session) { throw new QuickFix.UnsupportedMessageType(); }
public JfdCollateralInquiryStateMachine(CollateralInquiry positionsRequest, CancellationToken cancellationToken, IMessageHandler handler, ILog log) : base(positionsRequest, cancellationToken, handler, log) { positionsRequest.CollInquiryID = new CollInquiryID(Id); }