public virtual void Initialize(IOrderStateCreated stateCreated) { var aggregateId = stateCreated.OrderEventId.OrderId; var state = new OrderState(); state.OrderId = aggregateId; var aggregate = (OrderAggregate)GetOrderAggregate(state); var eventStoreAggregateId = ToEventStoreAggregateId(aggregateId); aggregate.Apply(stateCreated); Persist(eventStoreAggregateId, aggregate, state); }
public virtual void When(IOrderStateCreated e) { ThrowOnWrongEvent(e); this.OrderTypeId = e.OrderTypeId; this.OrderName = e.OrderName; this.ExternalId = e.ExternalId; this.SalesChannelEnumId = e.SalesChannelEnumId; this.OrderDate = e.OrderDate; this.Priority = e.Priority; this.EntryDate = e.EntryDate; this.PickSheetPrintedDate = e.PickSheetPrintedDate; this.StatusId = e.StatusId; this.CurrencyUomId = e.CurrencyUomId; this.SyncStatusId = e.SyncStatusId; this.BillingAccountId = e.BillingAccountId; this.OriginFacilityId = e.OriginFacilityId; this.WebSiteId = e.WebSiteId; this.ProductStoreId = e.ProductStoreId; this.TerminalId = e.TerminalId; this.TransactionId = e.TransactionId; this.AutoOrderShoppingListId = e.AutoOrderShoppingListId; this.NeedsInventoryIssuance = e.NeedsInventoryIssuance; this.IsRushOrder = e.IsRushOrder; this.InternalCode = e.InternalCode; this.RemainingSubTotal = e.RemainingSubTotal; this.GrandTotal = e.GrandTotal; this.InvoicePerShipment = e.InvoicePerShipment; this.Active = (e.Active != null && e.Active.HasValue) ? e.Active.Value : default(bool); this.CreatedBy = e.CreatedBy; this.CreatedAt = e.CreatedAt; foreach (IOrderRoleStateCreated innerEvent in e.OrderRoleEvents) { IOrderRoleState innerState = this.OrderRoles.Get(innerEvent.GlobalId.PartyRoleId, true); innerState.Mutate(innerEvent); } foreach (IOrderItemStateCreated innerEvent in e.OrderItemEvents) { IOrderItemState innerState = this.OrderItems.Get(innerEvent.GlobalId.OrderItemSeqId, true); innerState.Mutate(innerEvent); } foreach (IOrderShipGroupStateCreated innerEvent in e.OrderShipGroupEvents) { IOrderShipGroupState innerState = this.OrderShipGroups.Get(innerEvent.GlobalId.ShipGroupSeqId, true); innerState.Mutate(innerEvent); } }
protected virtual IOrderStateCreated Map(ICreateOrder c) { var stateEventId = new OrderEventId(c.OrderId, c.Version); IOrderStateCreated e = NewOrderStateCreated(stateEventId); e.OrderTypeId = c.OrderTypeId; e.OrderName = c.OrderName; e.ExternalId = c.ExternalId; e.SalesChannelEnumId = c.SalesChannelEnumId; e.OrderDate = c.OrderDate; e.Priority = c.Priority; e.EntryDate = c.EntryDate; e.PickSheetPrintedDate = c.PickSheetPrintedDate; e.StatusId = c.StatusId; e.CurrencyUomId = c.CurrencyUomId; e.SyncStatusId = c.SyncStatusId; e.BillingAccountId = c.BillingAccountId; e.OriginFacilityId = c.OriginFacilityId; e.WebSiteId = c.WebSiteId; e.ProductStoreId = c.ProductStoreId; e.TerminalId = c.TerminalId; e.TransactionId = c.TransactionId; e.AutoOrderShoppingListId = c.AutoOrderShoppingListId; e.NeedsInventoryIssuance = c.NeedsInventoryIssuance; e.IsRushOrder = c.IsRushOrder; e.InternalCode = c.InternalCode; e.RemainingSubTotal = c.RemainingSubTotal; e.GrandTotal = c.GrandTotal; e.InvoicePerShipment = c.InvoicePerShipment; e.Active = c.Active; e.CommandId = c.CommandId; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); var version = c.Version; foreach (ICreateOrderRole innerCommand in c.OrderRoles) { ThrowOnInconsistentCommands(c, innerCommand); IOrderRoleStateCreated innerEvent = MapCreate(innerCommand, c, version, _state); e.AddOrderRoleEvent(innerEvent); } foreach (ICreateOrderItem innerCommand in c.OrderItems) { ThrowOnInconsistentCommands(c, innerCommand); IOrderItemStateCreated innerEvent = MapCreate(innerCommand, c, version, _state); e.AddOrderItemEvent(innerEvent); } foreach (ICreateOrderShipGroup innerCommand in c.OrderShipGroups) { ThrowOnInconsistentCommands(c, innerCommand); IOrderShipGroupStateCreated innerEvent = MapCreate(innerCommand, c, version, _state); e.AddOrderShipGroupEvent(innerEvent); } return(e); }
public virtual void Create(ICreateOrder c) { IOrderStateCreated e = Map(c); Apply(e); }
void IOrderState.When(IOrderStateCreated e) { throw new NotSupportedException(); }
public virtual OrderStateCreatedDto ToOrderStateCreatedDto(IOrderStateCreated e) { var dto = new OrderStateCreatedDto(); dto.OrderEventId = e.OrderEventId; dto.CreatedAt = e.CreatedAt; dto.CreatedBy = e.CreatedBy; dto.CommandId = e.CommandId; dto.OrderTypeId = e.OrderTypeId; dto.OrderName = e.OrderName; dto.ExternalId = e.ExternalId; dto.SalesChannelEnumId = e.SalesChannelEnumId; dto.OrderDate = e.OrderDate; dto.Priority = e.Priority; dto.EntryDate = e.EntryDate; dto.PickSheetPrintedDate = e.PickSheetPrintedDate; dto.StatusId = e.StatusId; dto.CurrencyUomId = e.CurrencyUomId; dto.SyncStatusId = e.SyncStatusId; dto.BillingAccountId = e.BillingAccountId; dto.OriginFacilityId = e.OriginFacilityId; dto.WebSiteId = e.WebSiteId; dto.ProductStoreId = e.ProductStoreId; dto.TerminalId = e.TerminalId; dto.TransactionId = e.TransactionId; dto.AutoOrderShoppingListId = e.AutoOrderShoppingListId; dto.NeedsInventoryIssuance = e.NeedsInventoryIssuance; dto.IsRushOrder = e.IsRushOrder; dto.InternalCode = e.InternalCode; dto.RemainingSubTotal = e.RemainingSubTotal; dto.GrandTotal = e.GrandTotal; dto.InvoicePerShipment = e.InvoicePerShipment; dto.Active = e.Active; var orderRoleEvents = new List <OrderRoleStateCreatedDto>(); foreach (var ee in e.OrderRoleEvents) { OrderRoleStateCreatedDto eeDto = OrderRoleStateEventDtoConverter.ToOrderRoleStateCreatedDto(ee); orderRoleEvents.Add(eeDto); } dto.OrderRoleEvents = orderRoleEvents.ToArray(); var orderItemEvents = new List <OrderItemStateCreatedDto>(); foreach (var ee in e.OrderItemEvents) { OrderItemStateCreatedDto eeDto = OrderItemStateEventDtoConverter.ToOrderItemStateCreatedDto(ee); orderItemEvents.Add(eeDto); } dto.OrderItemEvents = orderItemEvents.ToArray(); var orderShipGroupEvents = new List <OrderShipGroupStateCreatedDto>(); foreach (var ee in e.OrderShipGroupEvents) { OrderShipGroupStateCreatedDto eeDto = OrderShipGroupStateEventDtoConverter.ToOrderShipGroupStateCreatedDto(ee); orderShipGroupEvents.Add(eeDto); } dto.OrderShipGroupEvents = orderShipGroupEvents.ToArray(); return(dto); }