/// <summary>
        /// Serialize the <see cref="StakeHolderValueMap"/>
        /// </summary>
        /// <param name="stakeHolderValueMap">The <see cref="StakeHolderValueMap"/> to serialize</param>
        /// <returns>The <see cref="JObject"/></returns>
        private JObject Serialize(StakeHolderValueMap stakeHolderValueMap)
        {
            var jsonObject = new JObject();

            jsonObject.Add("alias", this.PropertySerializerMap["alias"](stakeHolderValueMap.Alias.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("category", this.PropertySerializerMap["category"](stakeHolderValueMap.Category.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("classKind", this.PropertySerializerMap["classKind"](Enum.GetName(typeof(CDP4Common.CommonData.ClassKind), stakeHolderValueMap.ClassKind)));
            jsonObject.Add("definition", this.PropertySerializerMap["definition"](stakeHolderValueMap.Definition.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("excludedDomain", this.PropertySerializerMap["excludedDomain"](stakeHolderValueMap.ExcludedDomain.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("excludedPerson", this.PropertySerializerMap["excludedPerson"](stakeHolderValueMap.ExcludedPerson.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("goal", this.PropertySerializerMap["goal"](stakeHolderValueMap.Goal.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("hyperLink", this.PropertySerializerMap["hyperLink"](stakeHolderValueMap.HyperLink.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("iid", this.PropertySerializerMap["iid"](stakeHolderValueMap.Iid));
            jsonObject.Add("modifiedOn", this.PropertySerializerMap["modifiedOn"](stakeHolderValueMap.ModifiedOn));
            jsonObject.Add("name", this.PropertySerializerMap["name"](stakeHolderValueMap.Name));
            jsonObject.Add("requirement", this.PropertySerializerMap["requirement"](stakeHolderValueMap.Requirement.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("revisionNumber", this.PropertySerializerMap["revisionNumber"](stakeHolderValueMap.RevisionNumber));
            jsonObject.Add("settings", this.PropertySerializerMap["settings"](stakeHolderValueMap.Settings));
            jsonObject.Add("shortName", this.PropertySerializerMap["shortName"](stakeHolderValueMap.ShortName));
            jsonObject.Add("stakeholderValue", this.PropertySerializerMap["stakeholderValue"](stakeHolderValueMap.StakeholderValue.OrderBy(x => x, this.guidComparer)));
            jsonObject.Add("thingPreference", this.PropertySerializerMap["thingPreference"](stakeHolderValueMap.ThingPreference));
            jsonObject.Add("valueGroup", this.PropertySerializerMap["valueGroup"](stakeHolderValueMap.ValueGroup.OrderBy(x => x, this.guidComparer)));
            return(jsonObject);
        }
        /// <summary>
        /// Persist the DTO composition to the ORM layer.
        /// </summary>
        /// <param name="transaction">
        /// The transaction object.
        /// </param>
        /// <param name="partition">
        /// The database partition (schema) where the requested resource will be stored.
        /// </param>
        /// <param name="stakeHolderValueMap">
        /// The stakeHolderValueMap instance to persist.
        /// </param>
        /// <returns>
        /// True if the persistence was successful.
        /// </returns>
        private bool CreateContainment(NpgsqlTransaction transaction, string partition, StakeHolderValueMap stakeHolderValueMap)
        {
            var results = new List <bool>();

            foreach (var alias in this.ResolveFromRequestCache(stakeHolderValueMap.Alias))
            {
                results.Add(this.AliasService.CreateConcept(transaction, partition, alias, stakeHolderValueMap));
            }

            foreach (var definition in this.ResolveFromRequestCache(stakeHolderValueMap.Definition))
            {
                results.Add(this.DefinitionService.CreateConcept(transaction, partition, definition, stakeHolderValueMap));
            }

            foreach (var hyperLink in this.ResolveFromRequestCache(stakeHolderValueMap.HyperLink))
            {
                results.Add(this.HyperLinkService.CreateConcept(transaction, partition, hyperLink, stakeHolderValueMap));
            }

            foreach (var settings in this.ResolveFromRequestCache(stakeHolderValueMap.Settings))
            {
                results.Add(this.StakeHolderValueMapSettingsService.CreateConcept(transaction, partition, settings, stakeHolderValueMap));
            }

            return(results.All(x => x));
        }
 /// <summary>
 /// Add an Stakeholder Value Map row view model to the list of <see cref="StakeholderValueMap"/>
 /// </summary>
 /// <param name="stakeholderValueMap">
 /// The <see cref="StakeholderValueMap"/> that is to be added
 /// </param>
 private StakeHolderValueMapRowViewModel AddStakeholderValueMapRowViewModel(StakeHolderValueMap stakeholderValueMap)
 {
     return(new StakeHolderValueMapRowViewModel(stakeholderValueMap, this.Session, this));
 }