protected void ThrowOnWrongEvent(IInOutLineImageEvent e) { var id = new System.Text.StringBuilder(); id.Append("[").Append("InOutLineImage|"); var stateEntityIdInOutDocumentNumber = (this as IGlobalIdentity <InOutLineImageId>).GlobalId.InOutDocumentNumber; var eventEntityIdInOutDocumentNumber = e.InOutLineImageEventId.InOutDocumentNumber; if (stateEntityIdInOutDocumentNumber != eventEntityIdInOutDocumentNumber) { throw DomainError.Named("mutateWrongEntity", "Entity Id InOutDocumentNumber {0} in state but entity id InOutDocumentNumber {1} in event", stateEntityIdInOutDocumentNumber, eventEntityIdInOutDocumentNumber); } id.Append(stateEntityIdInOutDocumentNumber).Append(","); var stateEntityIdInOutLineLineNumber = (this as IGlobalIdentity <InOutLineImageId>).GlobalId.InOutLineLineNumber; var eventEntityIdInOutLineLineNumber = e.InOutLineImageEventId.InOutLineLineNumber; if (stateEntityIdInOutLineLineNumber != eventEntityIdInOutLineLineNumber) { throw DomainError.Named("mutateWrongEntity", "Entity Id InOutLineLineNumber {0} in state but entity id InOutLineLineNumber {1} in event", stateEntityIdInOutLineLineNumber, eventEntityIdInOutLineLineNumber); } id.Append(stateEntityIdInOutLineLineNumber).Append(","); var stateEntityIdSequenceId = (this as IGlobalIdentity <InOutLineImageId>).GlobalId.SequenceId; var eventEntityIdSequenceId = e.InOutLineImageEventId.SequenceId; if (stateEntityIdSequenceId != eventEntityIdSequenceId) { throw DomainError.Named("mutateWrongEntity", "Entity Id SequenceId {0} in state but entity id SequenceId {1} in event", stateEntityIdSequenceId, eventEntityIdSequenceId); } id.Append(stateEntityIdSequenceId).Append(","); id.Append("]"); if (ForReapplying) { return; } var stateVersion = this.Version; var stateEvent = e is IInOutLineImageStateEvent ? (IInOutLineImageStateEvent)e : null; if (e == null) { return; } stateEvent.Version = stateVersion; //var stateEventStateVersion = stateEvent.Version; //if (InOutLineImageState.VersionZero == stateEventStateVersion) //{ // stateEventStateVersion = stateEvent.Version = stateVersion; //} //if (stateVersion != stateEventStateVersion) //{ // throw OptimisticConcurrencyException.Create(stateVersion, stateEventStateVersion, id.ToString()); //} }
public void Save(IInOutLineImageEvent stateEvent) { CurrentSession.Save(stateEvent); var saveable = stateEvent as ISaveable; if (saveable != null) { saveable.Save(); } }
public static void ThrowOnInconsistentEventIds(IInOutLineEvent oe, IInOutLineImageEvent e) { if (!oe.InOutLineEventId.InOutDocumentNumber.Equals(e.InOutLineImageEventId.InOutDocumentNumber)) { throw DomainError.Named("inconsistentEventIds", "Outer Id InOutDocumentNumber {0} but inner id InOutDocumentNumber {1}", oe.InOutLineEventId.InOutDocumentNumber, e.InOutLineImageEventId.InOutDocumentNumber); } if (!oe.InOutLineEventId.LineNumber.Equals(e.InOutLineImageEventId.InOutLineLineNumber)) { throw DomainError.Named("inconsistentEventIds", "Outer Id LineNumber {0} but inner id InOutLineLineNumber {1}", oe.InOutLineEventId.LineNumber, e.InOutLineImageEventId.InOutLineLineNumber); } }
}// END Map(ICreate... //////////////////////////// protected virtual IInOutLineStateMergePatched MapMergePatch(IMergePatchInOutLine c, IInOutCommand outerCommand, long version, IInOutState outerState) { c.RequesterId = outerCommand.RequesterId; var stateEventId = new InOutLineEventId(c.InOutDocumentNumber, c.LineNumber, version); IInOutLineStateMergePatched e = NewInOutLineStateMergePatched(stateEventId); var s = outerState.InOutLines.Get(c.LineNumber); e.LocatorId = c.LocatorId; e.ProductId = c.ProductId; e.AttributeSetInstanceId = c.AttributeSetInstanceId; e.DamageStatusIds = c.DamageStatusIds; e.Description = c.Description; e.QuantityUomId = c.QuantityUomId; e.MovementQuantity = c.MovementQuantity; e.PickedQuantity = c.PickedQuantity; e.IsInvoiced = c.IsInvoiced; e.Processed = c.Processed; e.RmaLineNumber = c.RmaLineNumber; e.ReversalLineNumber = c.ReversalLineNumber; e.Active = c.Active; e.IsPropertyLocatorIdRemoved = c.IsPropertyLocatorIdRemoved; e.IsPropertyProductIdRemoved = c.IsPropertyProductIdRemoved; e.IsPropertyAttributeSetInstanceIdRemoved = c.IsPropertyAttributeSetInstanceIdRemoved; e.IsPropertyDamageStatusIdsRemoved = c.IsPropertyDamageStatusIdsRemoved; e.IsPropertyDescriptionRemoved = c.IsPropertyDescriptionRemoved; e.IsPropertyQuantityUomIdRemoved = c.IsPropertyQuantityUomIdRemoved; e.IsPropertyMovementQuantityRemoved = c.IsPropertyMovementQuantityRemoved; e.IsPropertyPickedQuantityRemoved = c.IsPropertyPickedQuantityRemoved; e.IsPropertyIsInvoicedRemoved = c.IsPropertyIsInvoicedRemoved; e.IsPropertyProcessedRemoved = c.IsPropertyProcessedRemoved; e.IsPropertyRmaLineNumberRemoved = c.IsPropertyRmaLineNumberRemoved; e.IsPropertyReversalLineNumberRemoved = c.IsPropertyReversalLineNumberRemoved; e.IsPropertyActiveRemoved = c.IsPropertyActiveRemoved; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); foreach (IInOutLineImageCommand innerCommand in c.InOutLineImageCommands) { ThrowOnInconsistentCommands(c, innerCommand); IInOutLineImageEvent innerEvent = Map(innerCommand, c, version, s); e.AddInOutLineImageEvent(innerEvent); } return(e); }// END Map(IMergePatch... ////////////////////////////
public virtual InOutLineImageStateCreatedOrMergePatchedOrRemovedDto ToInOutLineImageStateEventDto(IInOutLineImageEvent stateEvent) { if (stateEvent.EventType == StateEventType.Created) { var e = (IInOutLineImageStateCreated)stateEvent; return(ToInOutLineImageStateCreatedDto(e)); } else if (stateEvent.EventType == StateEventType.MergePatched) { var e = (IInOutLineImageStateMergePatched)stateEvent; return(ToInOutLineImageStateMergePatchedDto(e)); } else if (stateEvent.EventType == StateEventType.Removed) { var e = (IInOutLineImageStateRemoved)stateEvent; return(ToInOutLineImageStateRemovedDto(e)); } throw DomainError.Named("invalidEventType", String.Format("Invalid state event type: {0}", stateEvent.EventType)); }
void IInOutLineStateMergePatched.AddInOutLineImageEvent(IInOutLineImageEvent e) { this._inOutLineImageEvents.AddInOutLineImageEvent(e); }
public virtual void AddInOutLineImageEvent(IInOutLineImageEvent e) { ThrowOnInconsistentEventIds(e); this._inOutLineImageEvents[e.InOutLineImageEventId] = e; }
protected void ThrowOnInconsistentEventIds(IInOutLineImageEvent e) { ThrowOnInconsistentEventIds(this, e); }
public void AddInOutLineImageEvent(IInOutLineImageEvent e) { _innerStateEvents.Add((InOutLineImageStateCreatedOrMergePatchedOrRemovedDto)e); }