internal bool TryGetValue(string identifier, out ReferentialBase item) { if (identifier.Length == 32) { if (_items.TryGetValue("i:" + identifier, out item)) { return(true); } } if (identifier.StartsWith("i:") || identifier.StartsWith("n:")) { if (_items.TryGetValue(identifier, out item)) { return(true); } } if (_items.TryGetValue("n:" + identifier, out item)) { return(true); } return(false); }
internal void Add(ReferentialBase item) { var type = item.GetType(); if (!_entities.TryGetValue(type, out TypesIndex types)) { types = new TypesIndex(this); _entities.Add(type, types); } TargetListIndex typeEntity = types.GetByTypename(item.TypeEntity); ModelIndex dic2 = typeEntity.Get(item.TargetName); if (dic2.ContainsKey(item.Name)) { var olditem = dic2[item.Name]; if (olditem is INotifyPropertyChanged n1) { n1.PropertyChanged -= N_PropertyChanged; } dic2.Set(item); //PropagateFileChanged(item); return; } dic2.Set(item); //PropagateFileChanged(item); if (item is INotifyPropertyChanged n2) { n2.PropertyChanged -= N_PropertyChanged; } }
internal void RemoveReferential(ReferentialBase item) { var type = item.GetType(); if (_entities.TryGetValue(type, out TypesIndex types)) { var dic1 = types.GetByTypename(item.TypeEntity); var dic2 = dic1.Get(item.TargetName); if (dic2.ContainsKey(item.Name)) { dic2.Remove(item); } } }
internal void Set(ReferentialBase item) { var n = "n:" + item.Name; var i = "i:" + item.Id; if (!_items.ContainsKey(n)) { _items.Add(n, item); } else { _items[n] = item; } if (!_items.ContainsKey(i)) { _items.Add(i, item); } else { _items[i] = item; } }