/// <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); }
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); }