internal static void EnsureSystemData(Connection _conn, ref Dictionary<string, ItemType> _itemTypes) { if (_itemTypes == null) { _itemTypes = new Dictionary<string, ItemType>(); var itemTypes = _conn.GetItems("ApplyItem", Properties.Resources.ItemTypeData); ItemType result; foreach (var itemTypeData in itemTypes) { result = new ItemType(); result.Id = itemTypeData.Attribute("id"); result.IsCore = itemTypeData.Element("core").InnerText == "1"; result.IsDependent = itemTypeData.Element("is_dependent").InnerText != "0"; result.IsFederated = itemTypeData.Element("implementation_type").InnerText == "federated"; result.IsPolymorphic = itemTypeData.Element("implementation_type").InnerText == "polymorphic"; result.IsVersionable = itemTypeData.Element("is_versionable").InnerText != "0"; result.Name = itemTypeData.Element("name").InnerText; result.Reference = ItemReference.FromFullItem(itemTypeData, true); _itemTypes[result.Name.ToLowerInvariant()] = result; } var relationships = _conn.GetItems("ApplyItem", Properties.Resources.RelationshipData); ItemType relType; foreach (var rel in relationships) { if (rel.Element("source_id").Attribute("name") != null && _itemTypes.TryGetValue(rel.Element("source_id").Attribute("name").ToLowerInvariant(), out result) && rel.Element("relationship_id").Attribute("name") != null && _itemTypes.TryGetValue(rel.Element("relationship_id").Attribute("name").ToLowerInvariant(), out relType)) { result.Relationships.Add(relType); } } var floatProps = _conn.GetItems("ApplyItem", Properties.Resources.FloatProperties); foreach (var floatProp in floatProps) { if (_itemTypes.TryGetValue(floatProp.Element("source_id").Attribute("name").ToLowerInvariant(), out result)) { result.FloatProperties.Add(floatProp.Element("name", "")); } } } }
public bool Equals(ItemType obj) { return (this.Id ?? "").Equals(obj.Id); }