/// <summary>
        /// Resolve the properties of the current <see cref="BuiltInRuleVerification"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.BuiltInRuleVerification;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current BuiltInRuleVerification POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ExecutedOn      = dto.ExecutedOn;
            this.IsActive        = dto.IsActive;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.RevisionNumber  = dto.RevisionNumber;
            this.Status          = dto.Status;
            this.ThingPreference = dto.ThingPreference;
            this.Violation.ResolveList(dto.Violation, dto.IterationContainerId, this.Cache);

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="Participant"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.Participant;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current Participant POCO.", dtoThing.GetType()));
            }

            this.Domain.ResolveList(dto.Domain, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.IsActive        = dto.IsActive;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Person          = this.Cache.Get <Person>(dto.Person, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Person>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.Role            = this.Cache.Get <ParticipantRole>(dto.Role, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <ParticipantRole>();
            this.SelectedDomain  = this.Cache.Get <DomainOfExpertise>(dto.SelectedDomain, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="SimpleUnit"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.SimpleUnit;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current SimpleUnit POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.IsDeprecated    = dto.IsDeprecated;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #4
0
        /// <summary>
        /// Resolve the properties of the current <see cref="BinaryNote"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.BinaryNote;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current BinaryNote POCO.", dtoThing.GetType()));
            }

            this.Caption = dto.Caption;
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.CreatedOn = dto.CreatedOn;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.FileType        = this.Cache.Get <FileType>(dto.FileType, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <FileType>();
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.Owner           = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="SiteDirectoryDataDiscussionItem"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.SiteDirectoryDataDiscussionItem;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current SiteDirectoryDataDiscussionItem POCO.", dtoThing.GetType()));
            }

            this.Author    = this.Cache.Get <Person>(dto.Author, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Person>();
            this.Content   = dto.Content;
            this.CreatedOn = dto.CreatedOn;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LanguageCode    = dto.LanguageCode;
            this.ModifiedOn      = dto.ModifiedOn;
            this.ReplyTo         = (dto.ReplyTo.HasValue) ? this.Cache.Get <DiscussionItem>(dto.ReplyTo.Value, dto.IterationContainerId) : null;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #6
0
        /// <summary>
        /// Resolve the properties of the current <see cref="EngineeringModelDataNote"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.EngineeringModelDataNote;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current EngineeringModelDataNote POCO.", dtoThing.GetType()));
            }

            this.Author    = this.Cache.Get <Participant>(dto.Author, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Participant>();
            this.Content   = dto.Content;
            this.CreatedOn = dto.CreatedOn;
            this.Discussion.ResolveList(dto.Discussion, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LanguageCode          = dto.LanguageCode;
            this.ModifiedOn            = dto.ModifiedOn;
            this.PrimaryAnnotatedThing = (dto.PrimaryAnnotatedThing.HasValue) ? this.Cache.Get <ModellingThingReference>(dto.PrimaryAnnotatedThing.Value, dto.IterationContainerId) : null;
            this.RelatedThing.ResolveList(dto.RelatedThing, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #7
0
        /// <summary>
        /// Resolve the properties of the current <see cref="PossibleFiniteStateList"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.PossibleFiniteStateList;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current PossibleFiniteStateList POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.DefaultState = (dto.DefaultState.HasValue) ? this.Cache.Get <PossibleFiniteState>(dto.DefaultState.Value, dto.IterationContainerId) : null;
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.ModifiedOn = dto.ModifiedOn;
            this.Name       = dto.Name;
            this.Owner      = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.PossibleState.ResolveList(dto.PossibleState, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="HyperLink"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.HyperLink;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current HyperLink POCO.", dtoThing.GetType()));
            }

            this.Content = dto.Content;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LanguageCode    = dto.LanguageCode;
            this.ModifiedOn      = dto.ModifiedOn;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;
            this.Uri             = dto.Uri;

            this.ResolveExtraProperties();
        }
예제 #9
0
        /// <summary>
        /// Resolve the properties of the current <see cref="StakeHolderValueMapSettings"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.StakeHolderValueMapSettings;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current StakeHolderValueMapSettings POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.GoalToValueGroupRelationship = (dto.GoalToValueGroupRelationship.HasValue) ? this.Cache.Get <BinaryRelationshipRule>(dto.GoalToValueGroupRelationship.Value, dto.IterationContainerId) : null;
            this.ModifiedOn     = dto.ModifiedOn;
            this.RevisionNumber = dto.RevisionNumber;
            this.StakeholderValueToRequirementRelationship = (dto.StakeholderValueToRequirementRelationship.HasValue) ? this.Cache.Get <BinaryRelationshipRule>(dto.StakeholderValueToRequirementRelationship.Value, dto.IterationContainerId) : null;
            this.ThingPreference = dto.ThingPreference;
            this.ValueGroupToStakeholderValueRelationship = (dto.ValueGroupToStakeholderValueRelationship.HasValue) ? this.Cache.Get <BinaryRelationshipRule>(dto.ValueGroupToStakeholderValueRelationship.Value, dto.IterationContainerId) : null;

            this.ResolveExtraProperties();
        }
예제 #10
0
        /// <summary>
        /// Resolve the properties of the current <see cref="NestedParameter"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.NestedParameter;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current NestedParameter POCO.", dtoThing.GetType()));
            }

            this.ActualState         = (dto.ActualState.HasValue) ? this.Cache.Get <ActualFiniteState>(dto.ActualState.Value, dto.IterationContainerId) : null;
            this.ActualValue         = dto.ActualValue;
            this.AssociatedParameter = this.Cache.Get <ParameterBase>(dto.AssociatedParameter, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <ParameterBase>();
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.Formula         = dto.Formula;
            this.IsVolatile      = dto.IsVolatile;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Owner           = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="DiagramObject"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.DiagramObject;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current DiagramObject POCO.", dtoThing.GetType()));
            }

            this.Bounds.ResolveList(dto.Bounds, dto.IterationContainerId, this.Cache);
            this.DepictedThing = (dto.DepictedThing.HasValue) ? this.Cache.Get <Thing>(dto.DepictedThing.Value, dto.IterationContainerId) : null;
            this.DiagramElement.ResolveList(dto.DiagramElement, dto.IterationContainerId, this.Cache);
            this.Documentation = dto.Documentation;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LocalStyle.ResolveList(dto.LocalStyle, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.Resolution      = dto.Resolution;
            this.RevisionNumber  = dto.RevisionNumber;
            this.SharedStyle     = (dto.SharedStyle.HasValue) ? this.Cache.Get <SharedStyle>(dto.SharedStyle.Value, dto.IterationContainerId) : null;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #12
0
        /// <summary>
        /// Resolve the properties of the current <see cref="IterationSetup"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.IterationSetup;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current IterationSetup POCO.", dtoThing.GetType()));
            }

            this.CreatedOn   = dto.CreatedOn;
            this.Description = dto.Description;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.FrozenOn             = dto.FrozenOn;
            this.IsDeleted            = dto.IsDeleted;
            this.IterationIid         = dto.IterationIid;
            this.IterationNumber      = dto.IterationNumber;
            this.ModifiedOn           = dto.ModifiedOn;
            this.RevisionNumber       = dto.RevisionNumber;
            this.SourceIterationSetup = (dto.SourceIterationSetup.HasValue) ? this.Cache.Get <IterationSetup>(dto.SourceIterationSetup.Value, dto.IterationContainerId) : null;
            this.ThingPreference      = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="DerivedQuantityKind"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.DerivedQuantityKind;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current DerivedQuantityKind POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.DefaultScale = this.Cache.Get <MeasurementScale>(dto.DefaultScale, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <MeasurementScale>();
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.IsDeprecated = dto.IsDeprecated;
            this.ModifiedOn   = dto.ModifiedOn;
            this.Name         = dto.Name;
            this.PossibleScale.ResolveList(dto.PossibleScale, dto.IterationContainerId, this.Cache);
            this.QuantityDimensionSymbol = dto.QuantityDimensionSymbol;
            this.QuantityKindFactor.ResolveList(dto.QuantityKindFactor, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.Symbol          = dto.Symbol;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #14
0
        /// <summary>
        /// Resolve the properties of the current <see cref="FileRevision"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.FileRevision;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current FileRevision POCO.", dtoThing.GetType()));
            }

            this.ContainingFolder = (dto.ContainingFolder.HasValue) ? this.Cache.Get <Folder>(dto.ContainingFolder.Value, dto.IterationContainerId) : null;
            this.ContentHash      = dto.ContentHash;
            this.CreatedOn        = dto.CreatedOn;
            this.Creator          = this.Cache.Get <Participant>(dto.Creator, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Participant>();
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.FileType.ResolveList(dto.FileType, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="Solution"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.Solution;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current Solution POCO.", dtoThing.GetType()));
            }

            this.Author    = this.Cache.Get <Participant>(dto.Author, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Participant>();
            this.Content   = dto.Content;
            this.CreatedOn = dto.CreatedOn;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LanguageCode    = dto.LanguageCode;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Owner           = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="BinaryRelationshipRule"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.BinaryRelationshipRule;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current BinaryRelationshipRule POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ForwardRelationshipName = dto.ForwardRelationshipName;
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.InverseRelationshipName = dto.InverseRelationshipName;
            this.IsDeprecated            = dto.IsDeprecated;
            this.ModifiedOn           = dto.ModifiedOn;
            this.Name                 = dto.Name;
            this.RelationshipCategory = this.Cache.Get <Category>(dto.RelationshipCategory, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Category>();
            this.RevisionNumber       = dto.RevisionNumber;
            this.ShortName            = dto.ShortName;
            this.SourceCategory       = this.Cache.Get <Category>(dto.SourceCategory, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Category>();
            this.TargetCategory       = this.Cache.Get <Category>(dto.TargetCategory, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <Category>();
            this.ThingPreference      = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #17
0
        /// <summary>
        /// Resolve the properties of the current <see cref="ModelLogEntry"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ModelLogEntry;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ModelLogEntry POCO.", dtoThing.GetType()));
            }

            this.AffectedDomainIid.ClearAndAddRange(dto.AffectedDomainIid);
            this.AffectedItemIid.ClearAndAddRange(dto.AffectedItemIid);
            this.Author = (dto.Author.HasValue) ? this.Cache.Get <Person>(dto.Author.Value, dto.IterationContainerId) : null;
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.Content   = dto.Content;
            this.CreatedOn = dto.CreatedOn;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.LanguageCode = dto.LanguageCode;
            this.Level        = dto.Level;
            this.LogEntryChangelogItem.ResolveList(dto.LogEntryChangelogItem, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #18
0
        /// <summary>
        /// Resolve the properties of the current <see cref="ParticipantPermission"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ParticipantPermission;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ParticipantPermission POCO.", dtoThing.GetType()));
            }

            this.AccessRight = dto.AccessRight;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.IsDeprecated    = dto.IsDeprecated;
            this.ModifiedOn      = dto.ModifiedOn;
            this.ObjectClass     = dto.ObjectClass;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="ActualFiniteStateList"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ActualFiniteStateList;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ActualFiniteStateList POCO.", dtoThing.GetType()));
            }

            this.ActualState.ResolveList(dto.ActualState, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ExcludeOption.ResolveList(dto.ExcludeOption, dto.IterationContainerId, this.Cache);
            this.ModifiedOn = dto.ModifiedOn;
            this.Owner      = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.PossibleFiniteStateList.ResolveList(dto.PossibleFiniteStateList, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #20
0
        /// <summary>
        /// Resolve the properties of the current <see cref="ParameterSubscriptionValueSet"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ParameterSubscriptionValueSet;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ParameterSubscriptionValueSet POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.Manual             = new ValueArray <string>(dto.Manual, this);
            this.ModifiedOn         = dto.ModifiedOn;
            this.RevisionNumber     = dto.RevisionNumber;
            this.SubscribedValueSet = this.Cache.Get <ParameterValueSetBase>(dto.SubscribedValueSet, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <ParameterValueSetBase>();
            this.ThingPreference    = dto.ThingPreference;
            this.ValueSwitch        = dto.ValueSwitch;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="StakeHolderValueMap"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.StakeHolderValueMap;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current StakeHolderValueMap POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.Goal.ResolveList(dto.Goal, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.ModifiedOn = dto.ModifiedOn;
            this.Name       = dto.Name;
            this.Requirement.ResolveList(dto.Requirement, dto.IterationContainerId, this.Cache);
            this.RevisionNumber = dto.RevisionNumber;
            this.Settings.ResolveList(dto.Settings, dto.IterationContainerId, this.Cache);
            this.ShortName = dto.ShortName;
            this.StakeholderValue.ResolveList(dto.StakeholderValue, dto.IterationContainerId, this.Cache);
            this.ThingPreference = dto.ThingPreference;
            this.ValueGroup.ResolveList(dto.ValueGroup, dto.IterationContainerId, this.Cache);

            this.ResolveExtraProperties();
        }
예제 #22
0
        /// <summary>
        /// Resolve the properties of the current <see cref="ExternalIdentifierMap"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ExternalIdentifierMap;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ExternalIdentifierMap POCO.", dtoThing.GetType()));
            }

            this.Correspondence.ResolveList(dto.Correspondence, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ExternalFormat      = (dto.ExternalFormat.HasValue) ? this.Cache.Get <ReferenceSource>(dto.ExternalFormat.Value, dto.IterationContainerId) : null;
            this.ExternalModelName   = dto.ExternalModelName;
            this.ExternalToolName    = dto.ExternalToolName;
            this.ExternalToolVersion = dto.ExternalToolVersion;
            this.ModifiedOn          = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.Owner           = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #23
0
        /// <summary>
        /// Resolve the properties of the current <see cref="SampledFunctionParameterType"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.SampledFunctionParameterType;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current SampledFunctionParameterType POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.DegreeOfInterpolation = dto.DegreeOfInterpolation;
            this.DependentParameterType.ResolveList(dto.DependentParameterType, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.IndependentParameterType.ResolveList(dto.IndependentParameterType, dto.IterationContainerId, this.Cache);
            this.InterpolationPeriod = new ValueArray <string>(dto.InterpolationPeriod, this);
            this.IsDeprecated        = dto.IsDeprecated;
            this.ModifiedOn          = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.Symbol          = dto.Symbol;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #24
0
        /// <summary>
        /// Resolve the properties of the current <see cref="Citation"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.Citation;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current Citation POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.IsAdaptation    = dto.IsAdaptation;
            this.Location        = dto.Location;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Remark          = dto.Remark;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.Source          = this.Cache.Get <ReferenceSource>(dto.Source, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <ReferenceSource>();
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="RequirementsSpecification"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.RequirementsSpecification;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current RequirementsSpecification POCO.", dtoThing.GetType()));
            }

            this.Alias.ResolveList(dto.Alias, dto.IterationContainerId, this.Cache);
            this.Category.ResolveList(dto.Category, dto.IterationContainerId, this.Cache);
            this.Definition.ResolveList(dto.Definition, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.Group.ResolveList(dto.Group, dto.IterationContainerId, this.Cache);
            this.HyperLink.ResolveList(dto.HyperLink, dto.IterationContainerId, this.Cache);
            this.IsDeprecated = dto.IsDeprecated;
            this.ModifiedOn   = dto.ModifiedOn;
            this.Name         = dto.Name;
            this.Owner        = this.Cache.Get <DomainOfExpertise>(dto.Owner, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <DomainOfExpertise>();
            this.ParameterValue.ResolveList(dto.ParameterValue, dto.IterationContainerId, this.Cache);
            this.Requirement.ResolveList(dto.Requirement, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ShortName       = dto.ShortName;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="EngineeringModel"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.EngineeringModel;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current EngineeringModel POCO.", dtoThing.GetType()));
            }

            this.Book.ResolveList(dto.Book, dto.IterationContainerId, this.Cache);
            this.CommonFileStore.ResolveList(dto.CommonFileStore, dto.IterationContainerId, this.Cache);
            this.EngineeringModelSetup = this.Cache.Get <EngineeringModelSetup>(dto.EngineeringModelSetup, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <EngineeringModelSetup>();
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.GenericNote.ResolveList(dto.GenericNote, dto.IterationContainerId, this.Cache);
            this.Iteration.ResolveList(dto.Iteration, dto.IterationContainerId, this.Cache);
            this.LastModifiedOn = dto.LastModifiedOn;
            this.LogEntry.ResolveList(dto.LogEntry, dto.IterationContainerId, this.Cache);
            this.ModellingAnnotation.ResolveList(dto.ModellingAnnotation, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="Publication"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.Publication;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current Publication POCO.", dtoThing.GetType()));
            }

            this.CreatedOn = dto.CreatedOn;
            this.Domain.ResolveList(dto.Domain, dto.IterationContainerId, this.Cache);
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ModifiedOn = dto.ModifiedOn;
            this.PublishedParameter.ResolveList(dto.PublishedParameter, dto.IterationContainerId, this.Cache);
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
예제 #28
0
        /// <summary>
        /// Resolve the properties of the current <see cref="Bounds"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.Bounds;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current Bounds POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.Height          = dto.Height;
            this.ModifiedOn      = dto.ModifiedOn;
            this.Name            = dto.Name;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;
            this.Width           = dto.Width;
            this.X = dto.X;
            this.Y = dto.Y;

            this.ResolveExtraProperties();
        }
예제 #29
0
        /// <summary>
        /// Resolve the properties of the current <see cref="ParameterTypeComponent"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.ParameterTypeComponent;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current ParameterTypeComponent POCO.", dtoThing.GetType()));
            }

            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.ParameterType   = this.Cache.Get <ParameterType>(dto.ParameterType, dto.IterationContainerId) ?? SentinelThingProvider.GetSentinel <ParameterType>();
            this.RevisionNumber  = dto.RevisionNumber;
            this.Scale           = (dto.Scale.HasValue) ? this.Cache.Get <MeasurementScale>(dto.Scale.Value, dto.IterationContainerId) : null;
            this.ShortName       = dto.ShortName;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }
        /// <summary>
        /// Resolve the properties of the current <see cref="LogEntryChangelogItem"/> from its <see cref="DTO.Thing"/> counter-part
        /// </summary>
        /// <param name="dtoThing">The source <see cref="DTO.Thing"/></param>
        internal override void ResolveProperties(DTO.Thing dtoThing)
        {
            if (dtoThing == null)
            {
                throw new ArgumentNullException("dtoThing");
            }

            var dto = dtoThing as DTO.LogEntryChangelogItem;

            if (dto == null)
            {
                throw new InvalidOperationException(string.Format("The DTO type {0} does not match the type of the current LogEntryChangelogItem POCO.", dtoThing.GetType()));
            }

            this.AffectedItemIid = dto.AffectedItemIid;
            this.AffectedReferenceIid.ClearAndAddRange(dto.AffectedReferenceIid);
            this.ChangeDescription = dto.ChangeDescription;
            this.ChangelogKind     = dto.ChangelogKind;
            this.ExcludedDomain.ResolveList(dto.ExcludedDomain, dto.IterationContainerId, this.Cache);
            this.ExcludedPerson.ResolveList(dto.ExcludedPerson, dto.IterationContainerId, this.Cache);
            this.ModifiedOn      = dto.ModifiedOn;
            this.RevisionNumber  = dto.RevisionNumber;
            this.ThingPreference = dto.ThingPreference;

            this.ResolveExtraProperties();
        }