private void AddAggregates(ListResult result, NodeTree nodeTree) { foreach (Node node in nodeTree.Nodes.Where(n => n.Data != null && this.IsAggregateValue(n.Metadata))) { int bufferIndex = this.Buffer.GetAggregateIndex(node.Identity); AggregateWriter writer = new AggregateWriter(node) { Attribute = new AggregateAttribute(node.Identity.Name, aggregateIndex: bufferIndex, listIndex: null), Value = this.CreateDataReader(result, node) }; result.Aggregates.Add(writer); } foreach (Node node in nodeTree.Items.Where(n => this.IsAggregateList(n.Metadata))) { int bufferIndex = this.Buffer.GetListIndex(node.Metadata); AggregateWriter writer = new AggregateWriter(node) { Attribute = new AggregateAttribute(node.Metadata.Parent.Identity.Name, aggregateIndex: null, listIndex: bufferIndex), }; result.Aggregates.Add(writer); } }
protected override async Task <OrderCompletedEvent> Handle(CompleteOrderCommand command) { var order = AggregateWriter.GetById(command.OrderId); var orderCompletedEvent = new OrderCompletedEvent(order.Id); return(orderCompletedEvent); }
protected override async Task <OrderPutDownEvent> Handle(PutDownOrderCommand command) { var order = AggregateWriter.GetById(command.OrderId); // Check order state var orderPutDowndEvent = new OrderPutDownEvent(command.OrderId); return(orderPutDowndEvent); }
protected override async Task <SupplementaryEvidenceReceivedEvent> Handle(RegisterSupplementaryEvidenceCommand command) { var order = AggregateWriter.GetById(command.OrderId); // Check order state var supplementaryEvidenceReceivedEvent = new SupplementaryEvidenceReceivedEvent(command.OrderId, command.SupplementaryEvidence); return(supplementaryEvidenceReceivedEvent); }
protected override async Task <OrderPickedUpEvent> Handle(PickupOrderCommand command) { var order = AggregateWriter.GetById(command.OrderId); // Check order state var orderPickupdEvent = new OrderPickedUpEvent(command.OrderId, command.OwnerId); return(orderPickupdEvent); }
protected override async Task <OrderFilledEvent> Handle(FillOrderCommand command) { var order = AggregateWriter.GetById(command.OrderId); // Check order state var orderFilldEvent = new OrderFilledEvent(command.OrderId, command.RFQId, command.Price, command.Quantity); return(orderFilldEvent); }
protected override async Task <OrderRejectedEvent> Handle(RejectOrderCommand command) { var order = AggregateWriter.GetById(command.OrderId); // Check order state var orderRejectdEvent = new OrderRejectedEvent(command.OrderId, command.Reason); return(orderRejectdEvent); }
protected override async Task <RFQCancelledEvent> Handle(CancelRFQCommand command) { var rfq = AggregateWriter.GetById(command.RFQIdentitier); if (rfq == null) { // invlid request what to do here? } QuoteProvider.CancelRFQ(command.RFQIdentitier); var rFQCancelledEvent = new RFQCancelledEvent(command.RFQIdentitier); return(rFQCancelledEvent); }
protected override async Task <RFQRaisedEvent> Handle(RaiseRFQCommand command) { var rfq = AggregateWriter.GetById(command.RFQIdentitier); if (rfq != null) { // already processing, what to do here? } var rFQRaisedEvent = new RFQRaisedEvent(command.Instrument, command.RFQIdentitier, command.CounterParties, command.Requested); // Save the creation await base.SaveEvent(rFQRaisedEvent); // and then SubmitRequest QuoteProvider.SubmitRFQ(command.RFQIdentitier, command.OrderId, command.CounterParties, command.Instrument, 110.25M); return(rFQRaisedEvent); }