protected virtual IAttributeStateMergePatched Map(IMergePatchAttribute c) { var stateEventId = new AttributeEventId(c.AttributeId, c.Version); IAttributeStateMergePatched e = NewAttributeStateMergePatched(stateEventId); e.AttributeName = c.AttributeName; e.OrganizationId = c.OrganizationId; e.Description = c.Description; e.IsMandatory = c.IsMandatory; 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.IsPropertyAttributeNameRemoved = c.IsPropertyAttributeNameRemoved; e.IsPropertyOrganizationIdRemoved = c.IsPropertyOrganizationIdRemoved; e.IsPropertyDescriptionRemoved = c.IsPropertyDescriptionRemoved; e.IsPropertyIsMandatoryRemoved = c.IsPropertyIsMandatoryRemoved; e.IsPropertyAttributeValueTypeRemoved = c.IsPropertyAttributeValueTypeRemoved; e.IsPropertyAttributeValueLengthRemoved = c.IsPropertyAttributeValueLengthRemoved; e.IsPropertyIsListRemoved = c.IsPropertyIsListRemoved; e.IsPropertyFieldNameRemoved = c.IsPropertyFieldNameRemoved; e.IsPropertyReferenceIdRemoved = c.IsPropertyReferenceIdRemoved; 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 (IAttributeValueCommand innerCommand in c.AttributeValueCommands) { ThrowOnInconsistentCommands(c, innerCommand); IAttributeValueEvent innerEvent = Map(innerCommand, c, version, _state); e.AddAttributeValueEvent(innerEvent); } foreach (IAttributeAliasCommand innerCommand in c.AttributeAliasCommands) { ThrowOnInconsistentCommands(c, innerCommand); IAttributeAliasEvent innerEvent = Map(innerCommand, c, version, _state); e.AddAttributeAliasEvent(innerEvent); } return(e); }
public virtual AttributeStateMergePatchedDto ToAttributeStateMergePatchedDto(IAttributeStateMergePatched e) { var dto = new AttributeStateMergePatchedDto(); dto.AttributeEventId = e.AttributeEventId; dto.CreatedAt = e.CreatedAt; dto.CreatedBy = e.CreatedBy; dto.CommandId = e.CommandId; dto.AttributeName = e.AttributeName; dto.OrganizationId = e.OrganizationId; dto.Description = e.Description; dto.IsMandatory = e.IsMandatory; dto.AttributeValueType = e.AttributeValueType; dto.AttributeValueLength = e.AttributeValueLength; dto.IsList = e.IsList; dto.FieldName = e.FieldName; dto.ReferenceId = e.ReferenceId; dto.Active = e.Active; dto.IsPropertyAttributeNameRemoved = e.IsPropertyAttributeNameRemoved; dto.IsPropertyOrganizationIdRemoved = e.IsPropertyOrganizationIdRemoved; dto.IsPropertyDescriptionRemoved = e.IsPropertyDescriptionRemoved; dto.IsPropertyIsMandatoryRemoved = e.IsPropertyIsMandatoryRemoved; dto.IsPropertyAttributeValueTypeRemoved = e.IsPropertyAttributeValueTypeRemoved; dto.IsPropertyAttributeValueLengthRemoved = e.IsPropertyAttributeValueLengthRemoved; dto.IsPropertyIsListRemoved = e.IsPropertyIsListRemoved; dto.IsPropertyFieldNameRemoved = e.IsPropertyFieldNameRemoved; dto.IsPropertyReferenceIdRemoved = e.IsPropertyReferenceIdRemoved; dto.IsPropertyActiveRemoved = e.IsPropertyActiveRemoved; var attributeValueEvents = new List <AttributeValueStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.AttributeValueEvents) { AttributeValueStateCreatedOrMergePatchedOrRemovedDto eeDto = AttributeValueStateEventDtoConverter.ToAttributeValueStateEventDto(ee); attributeValueEvents.Add(eeDto); } dto.AttributeValueEvents = attributeValueEvents.ToArray(); var attributeAliasEvents = new List <AttributeAliasStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.AttributeAliasEvents) { AttributeAliasStateCreatedOrMergePatchedOrRemovedDto eeDto = AttributeAliasStateEventDtoConverter.ToAttributeAliasStateEventDto(ee); attributeAliasEvents.Add(eeDto); } dto.AttributeAliasEvents = attributeAliasEvents.ToArray(); return(dto); }
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); }
void IAttributeState.When(IAttributeStateMergePatched e) { throw new NotSupportedException(); }
public virtual void MergePatch(IMergePatchAttribute c) { IAttributeStateMergePatched e = Map(c); Apply(e); }
public virtual void When(IAttributeStateMergePatched e) { ThrowOnWrongEvent(e); if (e.Name == null) { if (e.IsPropertyNameRemoved) { this.Name = default(string); } } else { this.Name = e.Name; } if (e.OrganizationId == null) { if (e.IsPropertyOrganizationIdRemoved) { this.OrganizationId = default(string); } } else { this.OrganizationId = e.OrganizationId; } if (e.Description == null) { if (e.IsPropertyDescriptionRemoved) { this.Description = default(string); } } else { this.Description = e.Description; } if (e.IsMandatory == null) { if (e.IsPropertyIsMandatoryRemoved) { this.IsMandatory = default(bool); } } else { this.IsMandatory = (e.IsMandatory != null && e.IsMandatory.HasValue) ? e.IsMandatory.Value : default(bool); } if (e.IsInstanceAttribute == null) { if (e.IsPropertyIsInstanceAttributeRemoved) { this.IsInstanceAttribute = default(bool); } } else { this.IsInstanceAttribute = (e.IsInstanceAttribute != null && e.IsInstanceAttribute.HasValue) ? e.IsInstanceAttribute.Value : default(bool); } if (e.AttributeValueType == null) { if (e.IsPropertyAttributeValueTypeRemoved) { this.AttributeValueType = default(string); } } else { this.AttributeValueType = e.AttributeValueType; } if (e.AttributeValueLength == null) { if (e.IsPropertyAttributeValueLengthRemoved) { this.AttributeValueLength = default(int?); } } else { this.AttributeValueLength = e.AttributeValueLength; } if (e.IsList == null) { if (e.IsPropertyIsListRemoved) { this.IsList = default(bool); } } else { this.IsList = (e.IsList != null && e.IsList.HasValue) ? e.IsList.Value : default(bool); } if (e.FieldName == null) { if (e.IsPropertyFieldNameRemoved) { this.FieldName = default(string); } } else { this.FieldName = e.FieldName; } if (e.ReferenceId == null) { if (e.IsPropertyReferenceIdRemoved) { this.ReferenceId = default(string); } } else { this.ReferenceId = e.ReferenceId; } 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 (IAttributeValueStateEvent innerEvent in e.AttributeValueEvents) { IAttributeValueState innerState = this.AttributeValues.Get(innerEvent.GlobalId.Value); innerState.Mutate(innerEvent); var removed = innerEvent as IAttributeValueStateRemoved; if (removed != null) { this.AttributeValues.Remove(innerState); } } }