public static void ThrowOnInconsistentEventIds(IInOutEvent oe, IInOutImageEvent e) { if (!oe.InOutEventId.DocumentNumber.Equals(e.InOutImageEventId.InOutDocumentNumber)) { throw DomainError.Named("inconsistentEventIds", "Outer Id DocumentNumber {0} but inner id InOutDocumentNumber {1}", oe.InOutEventId.DocumentNumber, e.InOutImageEventId.InOutDocumentNumber); } }
public void Save(IInOutImageEvent stateEvent) { CurrentSession.Save(stateEvent); var saveable = stateEvent as ISaveable; if (saveable != null) { saveable.Save(); } }
protected void ThrowOnWrongEvent(IInOutImageEvent e) { var id = new System.Text.StringBuilder(); id.Append("[").Append("InOutImage|"); var stateEntityIdInOutDocumentNumber = (this as IGlobalIdentity <InOutImageId>).GlobalId.InOutDocumentNumber; var eventEntityIdInOutDocumentNumber = e.InOutImageEventId.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 stateEntityIdSequenceId = (this as IGlobalIdentity <InOutImageId>).GlobalId.SequenceId; var eventEntityIdSequenceId = e.InOutImageEventId.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 IInOutImageStateEvent ? (IInOutImageStateEvent)e : null; if (e == null) { return; } stateEvent.Version = stateVersion; //var stateEventStateVersion = stateEvent.Version; //if (InOutImageState.VersionZero == stateEventStateVersion) //{ // stateEventStateVersion = stateEvent.Version = stateVersion; //} //if (stateVersion != stateEventStateVersion) //{ // throw OptimisticConcurrencyException.Create(stateVersion, stateEventStateVersion, id.ToString()); //} }
void IInOutStateMergePatched.AddInOutImageEvent(IInOutImageEvent e) { this._inOutImageEvents.AddInOutImageEvent(e); }
public void AddInOutImageEvent(IInOutImageEvent e) { _innerStateEvents.Add((InOutImageStateCreatedOrMergePatchedOrRemovedDto)e); }
public virtual InOutImageStateCreatedOrMergePatchedOrRemovedDto ToInOutImageStateEventDto(IInOutImageEvent stateEvent) { if (stateEvent.EventType == StateEventType.Created) { var e = (IInOutImageStateCreated)stateEvent; return(ToInOutImageStateCreatedDto(e)); } else if (stateEvent.EventType == StateEventType.MergePatched) { var e = (IInOutImageStateMergePatched)stateEvent; return(ToInOutImageStateMergePatchedDto(e)); } else if (stateEvent.EventType == StateEventType.Removed) { var e = (IInOutImageStateRemoved)stateEvent; return(ToInOutImageStateRemovedDto(e)); } throw DomainError.Named("invalidEventType", String.Format("Invalid state event type: {0}", stateEvent.EventType)); }
protected virtual IInOutStateMergePatched Map(IMergePatchInOut c) { var stateEventId = new InOutEventId(c.DocumentNumber, c.Version); IInOutStateMergePatched e = NewInOutStateMergePatched(stateEventId); e.Posted = c.Posted; e.Processed = c.Processed; e.Processing = c.Processing; e.DocumentTypeId = c.DocumentTypeId; e.Description = c.Description; e.OrderId = c.OrderId; e.DateOrdered = c.DateOrdered; e.IsPrinted = c.IsPrinted; e.MovementTypeId = c.MovementTypeId; e.MovementDate = c.MovementDate; e.BusinessPartnerId = c.BusinessPartnerId; e.WarehouseId = c.WarehouseId; e.POReference = c.POReference; e.FreightAmount = c.FreightAmount; e.ShipperId = c.ShipperId; e.ChargeAmount = c.ChargeAmount; e.DatePrinted = c.DatePrinted; e.CreatedFrom = c.CreatedFrom; e.SalesRepresentativeId = c.SalesRepresentativeId; e.NumberOfPackages = c.NumberOfPackages; e.PickDate = c.PickDate; e.ShipDate = c.ShipDate; e.TrackingNumber = c.TrackingNumber; e.DateReceived = c.DateReceived; e.IsInTransit = c.IsInTransit; e.IsApproved = c.IsApproved; e.IsInDispute = c.IsInDispute; e.RmaDocumentNumber = c.RmaDocumentNumber; e.ReversalDocumentNumber = c.ReversalDocumentNumber; e.Active = c.Active; e.IsPropertyPostedRemoved = c.IsPropertyPostedRemoved; e.IsPropertyProcessedRemoved = c.IsPropertyProcessedRemoved; e.IsPropertyProcessingRemoved = c.IsPropertyProcessingRemoved; e.IsPropertyDocumentTypeIdRemoved = c.IsPropertyDocumentTypeIdRemoved; e.IsPropertyDescriptionRemoved = c.IsPropertyDescriptionRemoved; e.IsPropertyOrderIdRemoved = c.IsPropertyOrderIdRemoved; e.IsPropertyDateOrderedRemoved = c.IsPropertyDateOrderedRemoved; e.IsPropertyIsPrintedRemoved = c.IsPropertyIsPrintedRemoved; e.IsPropertyMovementTypeIdRemoved = c.IsPropertyMovementTypeIdRemoved; e.IsPropertyMovementDateRemoved = c.IsPropertyMovementDateRemoved; e.IsPropertyBusinessPartnerIdRemoved = c.IsPropertyBusinessPartnerIdRemoved; e.IsPropertyWarehouseIdRemoved = c.IsPropertyWarehouseIdRemoved; e.IsPropertyPOReferenceRemoved = c.IsPropertyPOReferenceRemoved; e.IsPropertyFreightAmountRemoved = c.IsPropertyFreightAmountRemoved; e.IsPropertyShipperIdRemoved = c.IsPropertyShipperIdRemoved; e.IsPropertyChargeAmountRemoved = c.IsPropertyChargeAmountRemoved; e.IsPropertyDatePrintedRemoved = c.IsPropertyDatePrintedRemoved; e.IsPropertyCreatedFromRemoved = c.IsPropertyCreatedFromRemoved; e.IsPropertySalesRepresentativeIdRemoved = c.IsPropertySalesRepresentativeIdRemoved; e.IsPropertyNumberOfPackagesRemoved = c.IsPropertyNumberOfPackagesRemoved; e.IsPropertyPickDateRemoved = c.IsPropertyPickDateRemoved; e.IsPropertyShipDateRemoved = c.IsPropertyShipDateRemoved; e.IsPropertyTrackingNumberRemoved = c.IsPropertyTrackingNumberRemoved; e.IsPropertyDateReceivedRemoved = c.IsPropertyDateReceivedRemoved; e.IsPropertyIsInTransitRemoved = c.IsPropertyIsInTransitRemoved; e.IsPropertyIsApprovedRemoved = c.IsPropertyIsApprovedRemoved; e.IsPropertyIsInDisputeRemoved = c.IsPropertyIsInDisputeRemoved; e.IsPropertyRmaDocumentNumberRemoved = c.IsPropertyRmaDocumentNumberRemoved; e.IsPropertyReversalDocumentNumberRemoved = c.IsPropertyReversalDocumentNumberRemoved; 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 (IInOutImageCommand innerCommand in c.InOutImageCommands) { ThrowOnInconsistentCommands(c, innerCommand); IInOutImageEvent innerEvent = Map(innerCommand, c, version, _state); e.AddInOutImageEvent(innerEvent); } foreach (IInOutLineCommand innerCommand in c.InOutLineCommands) { ThrowOnInconsistentCommands(c, innerCommand); IInOutLineEvent innerEvent = Map(innerCommand, c, version, _state); e.AddInOutLineEvent(innerEvent); } return(e); }
public virtual void AddInOutImageEvent(IInOutImageEvent e) { ThrowOnInconsistentEventIds(e); this._inOutImageEvents[e.InOutImageEventId] = e; }
protected void ThrowOnInconsistentEventIds(IInOutImageEvent e) { ThrowOnInconsistentEventIds(this, e); }