public virtual void When(IOrderStateMergePatched e) { ThrowOnWrongEvent(e); if (e.OrderTypeId == null) { if (e.IsPropertyOrderTypeIdRemoved) { this.OrderTypeId = default(string); } } else { this.OrderTypeId = e.OrderTypeId; } if (e.OrderName == null) { if (e.IsPropertyOrderNameRemoved) { this.OrderName = default(string); } } else { this.OrderName = e.OrderName; } if (e.ExternalId == null) { if (e.IsPropertyExternalIdRemoved) { this.ExternalId = default(string); } } else { this.ExternalId = e.ExternalId; } if (e.SalesChannelEnumId == null) { if (e.IsPropertySalesChannelEnumIdRemoved) { this.SalesChannelEnumId = default(string); } } else { this.SalesChannelEnumId = e.SalesChannelEnumId; } if (e.OrderDate == null) { if (e.IsPropertyOrderDateRemoved) { this.OrderDate = default(DateTime?); } } else { this.OrderDate = e.OrderDate; } if (e.Priority == null) { if (e.IsPropertyPriorityRemoved) { this.Priority = default(string); } } else { this.Priority = e.Priority; } if (e.EntryDate == null) { if (e.IsPropertyEntryDateRemoved) { this.EntryDate = default(DateTime?); } } else { this.EntryDate = e.EntryDate; } if (e.PickSheetPrintedDate == null) { if (e.IsPropertyPickSheetPrintedDateRemoved) { this.PickSheetPrintedDate = default(DateTime?); } } else { this.PickSheetPrintedDate = e.PickSheetPrintedDate; } if (e.StatusId == null) { if (e.IsPropertyStatusIdRemoved) { this.StatusId = default(string); } } else { this.StatusId = e.StatusId; } if (e.CurrencyUomId == null) { if (e.IsPropertyCurrencyUomIdRemoved) { this.CurrencyUomId = default(string); } } else { this.CurrencyUomId = e.CurrencyUomId; } if (e.SyncStatusId == null) { if (e.IsPropertySyncStatusIdRemoved) { this.SyncStatusId = default(string); } } else { this.SyncStatusId = e.SyncStatusId; } if (e.BillingAccountId == null) { if (e.IsPropertyBillingAccountIdRemoved) { this.BillingAccountId = default(string); } } else { this.BillingAccountId = e.BillingAccountId; } if (e.OriginFacilityId == null) { if (e.IsPropertyOriginFacilityIdRemoved) { this.OriginFacilityId = default(string); } } else { this.OriginFacilityId = e.OriginFacilityId; } if (e.WebSiteId == null) { if (e.IsPropertyWebSiteIdRemoved) { this.WebSiteId = default(string); } } else { this.WebSiteId = e.WebSiteId; } if (e.ProductStoreId == null) { if (e.IsPropertyProductStoreIdRemoved) { this.ProductStoreId = default(string); } } else { this.ProductStoreId = e.ProductStoreId; } if (e.TerminalId == null) { if (e.IsPropertyTerminalIdRemoved) { this.TerminalId = default(string); } } else { this.TerminalId = e.TerminalId; } if (e.TransactionId == null) { if (e.IsPropertyTransactionIdRemoved) { this.TransactionId = default(string); } } else { this.TransactionId = e.TransactionId; } if (e.AutoOrderShoppingListId == null) { if (e.IsPropertyAutoOrderShoppingListIdRemoved) { this.AutoOrderShoppingListId = default(string); } } else { this.AutoOrderShoppingListId = e.AutoOrderShoppingListId; } if (e.NeedsInventoryIssuance == null) { if (e.IsPropertyNeedsInventoryIssuanceRemoved) { this.NeedsInventoryIssuance = default(string); } } else { this.NeedsInventoryIssuance = e.NeedsInventoryIssuance; } if (e.IsRushOrder == null) { if (e.IsPropertyIsRushOrderRemoved) { this.IsRushOrder = default(string); } } else { this.IsRushOrder = e.IsRushOrder; } if (e.InternalCode == null) { if (e.IsPropertyInternalCodeRemoved) { this.InternalCode = default(string); } } else { this.InternalCode = e.InternalCode; } if (e.RemainingSubTotal == null) { if (e.IsPropertyRemainingSubTotalRemoved) { this.RemainingSubTotal = default(decimal?); } } else { this.RemainingSubTotal = e.RemainingSubTotal; } if (e.GrandTotal == null) { if (e.IsPropertyGrandTotalRemoved) { this.GrandTotal = default(decimal?); } } else { this.GrandTotal = e.GrandTotal; } if (e.InvoicePerShipment == null) { if (e.IsPropertyInvoicePerShipmentRemoved) { this.InvoicePerShipment = default(string); } } else { this.InvoicePerShipment = e.InvoicePerShipment; } if (e.Active == null) { if (e.IsPropertyActiveRemoved) { this.Active = default(bool); } } else { this.Active = (e.Active != null && e.Active.HasValue) ? e.Active.Value : default(bool); } this.UpdatedBy = e.CreatedBy; this.UpdatedAt = e.CreatedAt; foreach (IOrderRoleEvent innerEvent in e.OrderRoleEvents) { IOrderRoleState innerState = this.OrderRoles.Get(innerEvent.GlobalId.PartyRoleId); innerState.Mutate(innerEvent); var removed = innerEvent as IOrderRoleStateRemoved; if (removed != null) { this.OrderRoles.Remove(innerState); } } foreach (IOrderItemEvent innerEvent in e.OrderItemEvents) { IOrderItemState innerState = this.OrderItems.Get(innerEvent.GlobalId.OrderItemSeqId); innerState.Mutate(innerEvent); } foreach (IOrderShipGroupEvent innerEvent in e.OrderShipGroupEvents) { IOrderShipGroupState innerState = this.OrderShipGroups.Get(innerEvent.GlobalId.ShipGroupSeqId); innerState.Mutate(innerEvent); var removed = innerEvent as IOrderShipGroupStateRemoved; if (removed != null) { this.OrderShipGroups.Remove(innerState); } } }
public virtual void MergePatch(IMergePatchOrder c) { IOrderStateMergePatched e = Map(c); Apply(e); }
void IOrderState.When(IOrderStateMergePatched e) { throw new NotSupportedException(); }
protected virtual IOrderStateMergePatched Map(IMergePatchOrder c) { var stateEventId = new OrderEventId(c.OrderId, c.Version); IOrderStateMergePatched e = NewOrderStateMergePatched(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.IsPropertyOrderTypeIdRemoved = c.IsPropertyOrderTypeIdRemoved; e.IsPropertyOrderNameRemoved = c.IsPropertyOrderNameRemoved; e.IsPropertyExternalIdRemoved = c.IsPropertyExternalIdRemoved; e.IsPropertySalesChannelEnumIdRemoved = c.IsPropertySalesChannelEnumIdRemoved; e.IsPropertyOrderDateRemoved = c.IsPropertyOrderDateRemoved; e.IsPropertyPriorityRemoved = c.IsPropertyPriorityRemoved; e.IsPropertyEntryDateRemoved = c.IsPropertyEntryDateRemoved; e.IsPropertyPickSheetPrintedDateRemoved = c.IsPropertyPickSheetPrintedDateRemoved; e.IsPropertyStatusIdRemoved = c.IsPropertyStatusIdRemoved; e.IsPropertyCurrencyUomIdRemoved = c.IsPropertyCurrencyUomIdRemoved; e.IsPropertySyncStatusIdRemoved = c.IsPropertySyncStatusIdRemoved; e.IsPropertyBillingAccountIdRemoved = c.IsPropertyBillingAccountIdRemoved; e.IsPropertyOriginFacilityIdRemoved = c.IsPropertyOriginFacilityIdRemoved; e.IsPropertyWebSiteIdRemoved = c.IsPropertyWebSiteIdRemoved; e.IsPropertyProductStoreIdRemoved = c.IsPropertyProductStoreIdRemoved; e.IsPropertyTerminalIdRemoved = c.IsPropertyTerminalIdRemoved; e.IsPropertyTransactionIdRemoved = c.IsPropertyTransactionIdRemoved; e.IsPropertyAutoOrderShoppingListIdRemoved = c.IsPropertyAutoOrderShoppingListIdRemoved; e.IsPropertyNeedsInventoryIssuanceRemoved = c.IsPropertyNeedsInventoryIssuanceRemoved; e.IsPropertyIsRushOrderRemoved = c.IsPropertyIsRushOrderRemoved; e.IsPropertyInternalCodeRemoved = c.IsPropertyInternalCodeRemoved; e.IsPropertyRemainingSubTotalRemoved = c.IsPropertyRemainingSubTotalRemoved; e.IsPropertyGrandTotalRemoved = c.IsPropertyGrandTotalRemoved; e.IsPropertyInvoicePerShipmentRemoved = c.IsPropertyInvoicePerShipmentRemoved; e.IsPropertyActiveRemoved = c.IsPropertyActiveRemoved; e.CommandId = c.CommandId; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); var version = c.Version; foreach (IOrderRoleCommand innerCommand in c.OrderRoleCommands) { ThrowOnInconsistentCommands(c, innerCommand); IOrderRoleEvent innerEvent = Map(innerCommand, c, version, _state); e.AddOrderRoleEvent(innerEvent); } foreach (IOrderItemCommand innerCommand in c.OrderItemCommands) { ThrowOnInconsistentCommands(c, innerCommand); IOrderItemEvent innerEvent = Map(innerCommand, c, version, _state); e.AddOrderItemEvent(innerEvent); } foreach (IOrderShipGroupCommand innerCommand in c.OrderShipGroupCommands) { ThrowOnInconsistentCommands(c, innerCommand); IOrderShipGroupEvent innerEvent = Map(innerCommand, c, version, _state); e.AddOrderShipGroupEvent(innerEvent); } return(e); }
public virtual OrderStateMergePatchedDto ToOrderStateMergePatchedDto(IOrderStateMergePatched e) { var dto = new OrderStateMergePatchedDto(); 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; dto.IsPropertyOrderTypeIdRemoved = e.IsPropertyOrderTypeIdRemoved; dto.IsPropertyOrderNameRemoved = e.IsPropertyOrderNameRemoved; dto.IsPropertyExternalIdRemoved = e.IsPropertyExternalIdRemoved; dto.IsPropertySalesChannelEnumIdRemoved = e.IsPropertySalesChannelEnumIdRemoved; dto.IsPropertyOrderDateRemoved = e.IsPropertyOrderDateRemoved; dto.IsPropertyPriorityRemoved = e.IsPropertyPriorityRemoved; dto.IsPropertyEntryDateRemoved = e.IsPropertyEntryDateRemoved; dto.IsPropertyPickSheetPrintedDateRemoved = e.IsPropertyPickSheetPrintedDateRemoved; dto.IsPropertyStatusIdRemoved = e.IsPropertyStatusIdRemoved; dto.IsPropertyCurrencyUomIdRemoved = e.IsPropertyCurrencyUomIdRemoved; dto.IsPropertySyncStatusIdRemoved = e.IsPropertySyncStatusIdRemoved; dto.IsPropertyBillingAccountIdRemoved = e.IsPropertyBillingAccountIdRemoved; dto.IsPropertyOriginFacilityIdRemoved = e.IsPropertyOriginFacilityIdRemoved; dto.IsPropertyWebSiteIdRemoved = e.IsPropertyWebSiteIdRemoved; dto.IsPropertyProductStoreIdRemoved = e.IsPropertyProductStoreIdRemoved; dto.IsPropertyTerminalIdRemoved = e.IsPropertyTerminalIdRemoved; dto.IsPropertyTransactionIdRemoved = e.IsPropertyTransactionIdRemoved; dto.IsPropertyAutoOrderShoppingListIdRemoved = e.IsPropertyAutoOrderShoppingListIdRemoved; dto.IsPropertyNeedsInventoryIssuanceRemoved = e.IsPropertyNeedsInventoryIssuanceRemoved; dto.IsPropertyIsRushOrderRemoved = e.IsPropertyIsRushOrderRemoved; dto.IsPropertyInternalCodeRemoved = e.IsPropertyInternalCodeRemoved; dto.IsPropertyRemainingSubTotalRemoved = e.IsPropertyRemainingSubTotalRemoved; dto.IsPropertyGrandTotalRemoved = e.IsPropertyGrandTotalRemoved; dto.IsPropertyInvoicePerShipmentRemoved = e.IsPropertyInvoicePerShipmentRemoved; dto.IsPropertyActiveRemoved = e.IsPropertyActiveRemoved; var orderRoleEvents = new List <OrderRoleStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.OrderRoleEvents) { OrderRoleStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderRoleStateEventDtoConverter.ToOrderRoleStateEventDto(ee); orderRoleEvents.Add(eeDto); } dto.OrderRoleEvents = orderRoleEvents.ToArray(); var orderItemEvents = new List <OrderItemStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.OrderItemEvents) { OrderItemStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderItemStateEventDtoConverter.ToOrderItemStateEventDto(ee); orderItemEvents.Add(eeDto); } dto.OrderItemEvents = orderItemEvents.ToArray(); var orderShipGroupEvents = new List <OrderShipGroupStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.OrderShipGroupEvents) { OrderShipGroupStateCreatedOrMergePatchedOrRemovedDto eeDto = OrderShipGroupStateEventDtoConverter.ToOrderShipGroupStateEventDto(ee); orderShipGroupEvents.Add(eeDto); } dto.OrderShipGroupEvents = orderShipGroupEvents.ToArray(); return(dto); }