protected void ThrowOnWrongEvent(IAttributeValueStateEvent stateEvent) { var stateEntityIdAttributeId = (this as IGlobalIdentity <AttributeValueId>).GlobalId.AttributeId; var eventEntityIdAttributeId = stateEvent.StateEventId.AttributeId; if (stateEntityIdAttributeId != eventEntityIdAttributeId) { throw DomainError.Named("mutateWrongEntity", "Entity Id AttributeId {0} in state but entity id AttributeId {1} in event", stateEntityIdAttributeId, eventEntityIdAttributeId); } var stateEntityIdValue = (this as IGlobalIdentity <AttributeValueId>).GlobalId.Value; var eventEntityIdValue = stateEvent.StateEventId.Value; if (stateEntityIdValue != eventEntityIdValue) { throw DomainError.Named("mutateWrongEntity", "Entity Id Value {0} in state but entity id Value {1} in event", stateEntityIdValue, eventEntityIdValue); } var stateVersion = this.Version; var eventVersion = stateEvent.Version; if (AttributeValueState.VersionZero == eventVersion) { eventVersion = stateEvent.Version = stateVersion; } if (stateVersion != eventVersion) { throw DomainError.Named("concurrencyConflict", "Conflict between state version {0} and event version {1}", stateVersion, eventVersion); } }
public static void ThrowOnInconsistentEventIds(IAttributeStateEvent oe, IAttributeValueStateEvent e) { if (!oe.StateEventId.AttributeId.Equals(e.StateEventId.AttributeId)) { throw DomainError.Named("inconsistentEventIds", "Outer Id AttributeId {0} but inner id AttributeId {1}", oe.StateEventId.AttributeId, e.StateEventId.AttributeId); } }
public void Save(IAttributeValueStateEvent stateEvent) { CurrentSession.Save(stateEvent); var saveable = stateEvent as ISaveable; if (saveable != null) { saveable.Save(); } }
protected virtual IAttributeStateMergePatched Map(IMergePatchAttribute c) { var stateEventId = new AttributeStateEventId(c.AttributeId, c.Version); IAttributeStateMergePatched e = NewAttributeStateMergePatched(stateEventId); e.Name = c.Name; e.OrganizationId = c.OrganizationId; e.Description = c.Description; e.IsMandatory = c.IsMandatory; e.IsInstanceAttribute = c.IsInstanceAttribute; e.AttributeValueType = c.AttributeValueType; e.AttributeValueLength = c.AttributeValueLength; e.IsList = c.IsList; e.FieldName = c.FieldName; e.ReferenceId = c.ReferenceId; e.Active = c.Active; e.IsPropertyNameRemoved = c.IsPropertyNameRemoved; e.IsPropertyOrganizationIdRemoved = c.IsPropertyOrganizationIdRemoved; e.IsPropertyDescriptionRemoved = c.IsPropertyDescriptionRemoved; e.IsPropertyIsMandatoryRemoved = c.IsPropertyIsMandatoryRemoved; e.IsPropertyIsInstanceAttributeRemoved = c.IsPropertyIsInstanceAttributeRemoved; e.IsPropertyAttributeValueTypeRemoved = c.IsPropertyAttributeValueTypeRemoved; e.IsPropertyAttributeValueLengthRemoved = c.IsPropertyAttributeValueLengthRemoved; e.IsPropertyIsListRemoved = c.IsPropertyIsListRemoved; e.IsPropertyFieldNameRemoved = c.IsPropertyFieldNameRemoved; e.IsPropertyReferenceIdRemoved = c.IsPropertyReferenceIdRemoved; e.IsPropertyActiveRemoved = c.IsPropertyActiveRemoved; ReflectUtils.CopyPropertyValue("CommandId", c, e); e.CreatedBy = (string)c.RequesterId; e.CreatedAt = DateTime.Now; var version = c.Version; foreach (IAttributeValueCommand innerCommand in c.AttributeValueCommands) { ThrowOnInconsistentCommands(c, innerCommand); IAttributeValueStateEvent innerEvent = Map(innerCommand, c, version, _state); e.AddAttributeValueEvent(innerEvent); } return(e); }
protected void ThrowOnWrongEvent(IAttributeValueStateEvent stateEvent) { var id = new System.Text.StringBuilder(); id.Append("[").Append("AttributeValue|"); var stateEntityIdAttributeId = (this as IGlobalIdentity <AttributeValueId>).GlobalId.AttributeId; var eventEntityIdAttributeId = stateEvent.StateEventId.AttributeId; if (stateEntityIdAttributeId != eventEntityIdAttributeId) { throw DomainError.Named("mutateWrongEntity", "Entity Id AttributeId {0} in state but entity id AttributeId {1} in event", stateEntityIdAttributeId, eventEntityIdAttributeId); } id.Append(stateEntityIdAttributeId).Append(","); var stateEntityIdValue = (this as IGlobalIdentity <AttributeValueId>).GlobalId.Value; var eventEntityIdValue = stateEvent.StateEventId.Value; if (stateEntityIdValue != eventEntityIdValue) { throw DomainError.Named("mutateWrongEntity", "Entity Id Value {0} in state but entity id Value {1} in event", stateEntityIdValue, eventEntityIdValue); } id.Append(stateEntityIdValue).Append(","); id.Append("]"); if (ForReapplying) { return; } var stateVersion = this.Version; var eventVersion = stateEvent.Version; if (AttributeValueState.VersionZero == eventVersion) { eventVersion = stateEvent.Version = stateVersion; } if (stateVersion != eventVersion) { throw OptimisticConcurrencyException.Create(stateVersion, eventVersion, id.ToString()); } }
public virtual void AddAttributeValueEvent(IAttributeValueStateEvent e) { ThrowOnInconsistentEventIds(e); this._attributeValueEvents[e.StateEventId] = e; }
protected void ThrowOnInconsistentEventIds(IAttributeValueStateEvent e) { ThrowOnInconsistentEventIds(this, e); }
public virtual AttributeValueStateCreatedOrMergePatchedOrRemovedDto ToAttributeValueStateEventDto(IAttributeValueStateEvent stateEvent) { if (stateEvent.StateEventType == StateEventType.Created) { var e = (IAttributeValueStateCreated)stateEvent; return(ToAttributeValueStateCreatedDto(e)); } else if (stateEvent.StateEventType == StateEventType.MergePatched) { var e = (IAttributeValueStateMergePatched)stateEvent; return(ToAttributeValueStateMergePatchedDto(e)); } else if (stateEvent.StateEventType == StateEventType.Removed) { var e = (IAttributeValueStateRemoved)stateEvent; return(ToAttributeValueStateRemovedDto(e)); } throw DomainError.Named("invalidStateEventType", String.Format("Invalid state event type: {0}", stateEvent.StateEventType)); }
public void AddAttributeValueEvent(IAttributeValueStateEvent e) { _innerStateEvents.Add((AttributeValueStateCreatedOrMergePatchedOrRemovedDto)e); }
void IAttributeStateMergePatched.AddAttributeValueEvent(IAttributeValueStateEvent e) { this._attributeValueEvents.AddAttributeValueEvent(e); }