Esempio n. 1
0
 public void Init(TUnit unit)
 {
     SelfUnit = unit;
     OnAddActions();
     Source.AddRange(Data);
     DoRandomSort();
 }
 public void AddRange(IList values)
 {
     Source.AddRange(values);
 }
 public IImmutableDictionary <string, ServiceDiscoveryConfig> AddRange(IEnumerable <KeyValuePair <string, ServiceDiscoveryConfig> > pairs) => Source.AddRange(pairs);
Esempio n. 4
0
        private void UpdateSource(Entity2GC obj)
        {
            if (Source == null)
            {
                return;
            }

            try
            {
                ParentViewModelSource.SuspendNotifications();
                ParentViewModelSource.SuspendValidating();
                Source.SuspendNotifications();
                var parentViewModelSourceName = GetParentViewModelSourceName();

                using (var mgr = IoC.Instance.Resolve <IBaseManager <Entity2GC> >())
                {
                    // Перевычитываем из БД весь Source
                    if (obj == null)
                    {
                        var keys = Source.Select(item => (object)item.ENTITY2GCID).ToList();
                        if (keys.Count <= 0)
                        {
                            return;
                        }

                        var array = mgr.GetFiltered(FilterHelper.GetFilterIn(Entity2GC.ENTITY2GCIDPropertyName, keys)).ToArray();
                        foreach (var itParent in array.Cast <IHasParent>().Where(itParent => itParent != null))
                        {
                            itParent.SourceTypeName = _itemType.Name.ToUpper();
                            itParent.TargetTypeName = parentViewModelSourceName;
                        }

                        Source.Clear();
                        Source.AddRange(array);
                        ParentViewModelSource.AcceptChanges();
                    }
                    else
                    {
                        var isDirty = ParentViewModelSource.IsDirty;

                        var index = Source.IndexOf(obj);
                        Source.RemoveAt(index);

                        var it       = mgr.Get(obj.GetKey());
                        var itParent = (IHasParent)it;
                        if (itParent != null)
                        {
                            itParent.SourceTypeName = _itemType.Name.ToUpper();
                            itParent.TargetTypeName = GetParentViewModelSourceName();
                        }
                        Source.Insert(index, it);

                        if (!isDirty)
                        {
                            ParentViewModelSource.AcceptChanges();
                        }
                    }
                }
            }
            finally
            {
                Source.ResumeNotifications();
                ParentViewModelSource.ResumeValidating();
                ParentViewModelSource.ResumeNotifications();
                ParentViewModelSource.Validate();
            }
        }