internal void CanSerializeAndDeserialize_OrderWorkingWithExpireTimeEvents() { // Arrange var order = new StubOrderBuilder() .WithTimeInForce(TimeInForce.GTD) .WithExpireTime(StubZonedDateTime.UnixEpoch() + Duration.FromMinutes(1)) .BuildStopMarketOrder(); var working = new OrderWorking( AccountId.FromString("FXCM-02851908-DEMO"), order.Id, new OrderIdBroker("B" + order.Id.Value), order.Symbol, order.OrderSide, order.OrderType, order.Quantity, order.Price, order.TimeInForce, order.ExpireTime, StubZonedDateTime.UnixEpoch(), Guid.NewGuid(), StubZonedDateTime.UnixEpoch()); // Act var packed = this.serializer.Serialize(working); var unpacked = (OrderWorking)this.serializer.Deserialize(packed); // Assert Assert.Equal(working, unpacked); this.Output.WriteLine(Convert.ToBase64String(packed)); }
private void When(OrderWorking @event) { Debug.EqualTo(@event.Symbol, this.Symbol, nameof(@event.Symbol)); Debug.EqualTo(@event.OrderSide, this.OrderSide, nameof(@event.OrderSide)); Debug.EqualTo(@event.OrderType, this.OrderType, nameof(@event.OrderSide)); Debug.EqualTo(@event.Quantity, this.Quantity, nameof(@event.OrderSide)); Debug.EqualTo(@event.TimeInForce, this.TimeInForce, nameof(@event.TimeInForce)); this.IdBroker = @event.OrderIdBroker; this.SetIsWorkingTrue(); }
private void OnMessage(OrderWorking @event) { this.EventCount++; this.Logger.LogInformation(LogId.Trading, $"{Received}{Event} {@event}."); var order = this.ProcessOrderEvent(@event); if (order != null) { this.ProcessModifyBuffer(order); if (this.GtdExpiryBackups && this.IsExpiredGtdOrder(order)) { // Creates a scheduled CancelOrder backup command for the expiry time this.CreateGtdCancelBackup(order); } } this.SendToEventPublisher(@event); }
private void OnMessage(OrderWorking @event) { this.ReceivedObjects.Add(@event); }
private void OnMessage(OrderWorking @event) { this.SendToBus(@event); }