Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        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;
            }
        }