public static void ThrowOnInconsistentEventIds(IOrderEvent oe, IOrderRoleEvent e) { if (!oe.OrderEventId.OrderId.Equals(e.OrderRoleEventId.OrderId)) { throw DomainError.Named("inconsistentEventIds", "Outer Id OrderId {0} but inner id OrderId {1}", oe.OrderEventId.OrderId, e.OrderRoleEventId.OrderId); } }
public void Save(IOrderRoleEvent stateEvent) { CurrentSession.Save(stateEvent); var saveable = stateEvent as ISaveable; if (saveable != null) { saveable.Save(); } }
protected void ThrowOnWrongEvent(IOrderRoleEvent e) { var id = new System.Text.StringBuilder(); id.Append("[").Append("OrderRole|"); var stateEntityIdOrderId = (this as IGlobalIdentity <OrderRoleId>).GlobalId.OrderId; var eventEntityIdOrderId = e.OrderRoleEventId.OrderId; if (stateEntityIdOrderId != eventEntityIdOrderId) { throw DomainError.Named("mutateWrongEntity", "Entity Id OrderId {0} in state but entity id OrderId {1} in event", stateEntityIdOrderId, eventEntityIdOrderId); } id.Append(stateEntityIdOrderId).Append(","); var stateEntityIdPartyRoleId = (this as IGlobalIdentity <OrderRoleId>).GlobalId.PartyRoleId; var eventEntityIdPartyRoleId = e.OrderRoleEventId.PartyRoleId; if (stateEntityIdPartyRoleId != eventEntityIdPartyRoleId) { throw DomainError.Named("mutateWrongEntity", "Entity Id PartyRoleId {0} in state but entity id PartyRoleId {1} in event", stateEntityIdPartyRoleId, eventEntityIdPartyRoleId); } id.Append(stateEntityIdPartyRoleId).Append(","); id.Append("]"); if (ForReapplying) { return; } var stateVersion = this.Version; var stateEvent = e is IOrderRoleStateEvent ? (IOrderRoleStateEvent)e : null; if (e == null) { return; } stateEvent.Version = stateVersion; //var stateEventStateVersion = stateEvent.Version; //if (OrderRoleState.VersionZero == stateEventStateVersion) //{ // stateEventStateVersion = stateEvent.Version = stateVersion; //} //if (stateVersion != stateEventStateVersion) //{ // throw OptimisticConcurrencyException.Create(stateVersion, stateEventStateVersion, id.ToString()); //} }
void IOrderStateMergePatched.AddOrderRoleEvent(IOrderRoleEvent e) { this._orderRoleEvents.AddOrderRoleEvent(e); }
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 OrderRoleStateCreatedOrMergePatchedOrRemovedDto ToOrderRoleStateEventDto(IOrderRoleEvent stateEvent) { if (stateEvent.EventType == StateEventType.Created) { var e = (IOrderRoleStateCreated)stateEvent; return(ToOrderRoleStateCreatedDto(e)); } else if (stateEvent.EventType == StateEventType.MergePatched) { var e = (IOrderRoleStateMergePatched)stateEvent; return(ToOrderRoleStateMergePatchedDto(e)); } else if (stateEvent.EventType == StateEventType.Removed) { var e = (IOrderRoleStateRemoved)stateEvent; return(ToOrderRoleStateRemovedDto(e)); } throw DomainError.Named("invalidEventType", String.Format("Invalid state event type: {0}", stateEvent.EventType)); }
public void AddOrderRoleEvent(IOrderRoleEvent e) { _innerStateEvents.Add((OrderRoleStateCreatedOrMergePatchedOrRemovedDto)e); }
public virtual void AddOrderRoleEvent(IOrderRoleEvent e) { ThrowOnInconsistentEventIds(e); this._orderRoleEvents[e.OrderRoleEventId] = e; }
protected void ThrowOnInconsistentEventIds(IOrderRoleEvent e) { ThrowOnInconsistentEventIds(this, e); }