Example #1
0
        /// <summary>
        /// Converts cardinality data in JToken form into a CardinalitySettings object
        /// </summary>
        /// <param name="obj">The JToken representation of CardinalitySettings.</param>
        /// <param name="attribute">The attribute object where the cardinality object belongs.</param>
        internal static CardinalitySettings CardinalitySettingsFromData(JToken obj, CdmAttribute attribute)
        {
            if (obj == null)
            {
                return(null);
            }

            CardinalitySettings cardinality = new CardinalitySettings(attribute)
            {
                Minimum = obj["minimum"]?.ToString(),
                Maximum = obj["maximum"]?.ToString()
            };

            return(cardinality.Minimum != null && cardinality.Maximum != null ? cardinality : null);
        }
Example #2
0
        internal ResolvedAttribute Get(string name)
        {
            if (this.ResolvedName2resolvedAttribute.ContainsKey(name))
            {
                return(this.ResolvedName2resolvedAttribute[name]);
            }

            ResolvedAttribute raFound = null;

            if (this.Set?.Count != null)
            {
                // deeper look. first see if there are any groups held in this group
                if (this.Set != null)
                {
                    foreach (ResolvedAttribute ra in this.Set)
                    {
                        if ((ra.Target as ResolvedAttributeSet)?.Set != null)
                        {
                            raFound = (ra.Target as ResolvedAttributeSet).Get(name);
                            if (raFound != null)
                            {
                                return(raFound);
                            }
                        }
                    }
                    // nothing found that way, so now look through the attribute definitions for a match
                    foreach (ResolvedAttribute ra in this.Set)
                    {
                        CdmAttribute attLook = ra.Target as CdmAttribute;
                        if (attLook?.Name == name)
                        {
                            return(ra);
                        }
                    }
                }
                return(null);
            }
            return(null);
        }