예제 #1
0
        public TreeViewItemEx SearchPrev(TreeViewItemEx item)
        {
            int index = ParentItems.IndexOf(item);

            if (index == -1)
            {
                return(null);
            }

            TreeViewItemEx result = null;

            if (index != 0)
            {
                // В текущий коллекции найден предыдущий элемент
                result = (TreeViewItemEx)ParentItems[index - 1];
            }
            else if (ParentItem != null)
            {
                result = ParentItem;
            }
            else
            {
                // Перебор по родителям, любой следующий дочерний элемент будет найденным
                result = SearchPrev(ParentItem);
            }

            return(result);
        }
예제 #2
0
        internal Model.Member FindMe(string id)
        {
            if(Items == null || Items.Count <= 0)
            {
                return null;
            } 
            Model.Member member = Items.FirstOrDefault(x => x.Id == id);

            if(member != null)
            {
                member.IsMe = true;

                switch(member.Auth)
                {
                    case AuthType.STUDENT:
                        Student student = StudentItems.Single(x => x.Id == id);
                        student.IsMe = true;
                        break;

                    case AuthType.TEACHER:
                        Teacher teacher = TeacherItems.Single(x => x.Id == id);
                        teacher.IsMe = true;
                        break;

                    case AuthType.PARENT:
                        Parent parent = ParentItems.Single(x => x.Id == id);
                        parent.IsMe = true;
                        break;
                }

                return member;
            }

            return new Model.Member();
        }
예제 #3
0
 /// <summary>
 /// Pres the save.
 /// </summary>
 /// <param name="dbContext">The database context.</param>
 /// <param name="state">The state.</param>
 public override void PreSaveChanges(DbContext dbContext, System.Data.Entity.EntityState state)
 {
     if (state == System.Data.Entity.EntityState.Deleted)
     {
         ChildItems.Clear();
         ParentItems.Clear();
     }
 }
예제 #4
0
 internal void AddParent(Parent parent)
 {
     lock (_lock)
     {
         // Once locked, you can manipulate the collection safely from another thread
         ParentItems.Add((Parent)parent.Clone());
     }
 }
예제 #5
0
        /// <summary>
        /// Pres the save.
        /// </summary>
        /// <param name="dbContext">The database context.</param>
        /// <param name="state">The state.</param>
        public override void PreSaveChanges(Data.DbContext dbContext, System.Data.Entity.EntityState state)
        {
            var channel = this.ContentChannel;

            if (state == System.Data.Entity.EntityState.Deleted)
            {
                ChildItems.Clear();
                ParentItems.Clear();
            }

            base.PreSaveChanges(dbContext, state);
        }
 private void LoadDummyParentItems()
 {
     for (var i = 0; i < 20; i++)
     {
         ParentItems.Add(new ParentItem()
         {
             Name = $"Parent Item {i}",
             CreatedOn = DateTime.Now.AddHours(i),
             IsActive = i % 2 == 0 ? true : false,
             Status = i % 2 == 0 ? ParentItemStatus.Status_Two : ParentItemStatus.Status_One,
             ChildItems = new List<string>() { $"Child one_{i}", $"Child two_{i}", $"Child three_{i}", $"Child four_{i}" }
         });
     }
 }
예제 #7
0
        internal void SetParentInfo(Student student)
        {
            foreach (ParentLog item in student.ParentsLogs)
            {
                Parent parentInfo = ParentItems.FirstOrDefault(x => x.Idx == item.ParentIdx);
                if (parentInfo != null)
                {
                    item.Name = parentInfo.Name;
                    item.PhoneNum = parentInfo.Mobile;
                    item.Image = parentInfo.ProfileImage;
                }
            }

        }
예제 #8
0
        /// <summary>
        /// Pres the save.
        /// </summary>
        /// <param name="dbContext">The database context.</param>
        /// <param name="state">The state.</param>
        public override void PreSaveChanges(Data.DbContext dbContext, EntityState state)
        {
            var channel = this.ContentChannel;

            if (state == EntityState.Deleted)
            {
                ChildItems.Clear();
                ParentItems.Clear();

                DeleteRelatedSlugs(dbContext);
            }
            else
            {
                AssignItemGlobalKey(dbContext);
            }

            base.PreSaveChanges(dbContext, state);
        }
예제 #9
0
        public void ListToLevels(List <string> Values, List <int> Levels)
        {
            Element.Items.Clear();

            for (int i = 0; i < Levels.Count; i++)
            {
                if (Levels[i] > 0)
                {
                    TreeViewItem ParentItem = (TreeViewItem)Element.Items[Element.Items.Count - 1];
                    ObservableCollection <TreeViewItem> ParentItems = (ObservableCollection <TreeViewItem>)ParentItem.ItemsSource;
                    if (ParentItems == null)
                    {
                        ParentItems = new ObservableCollection <TreeViewItem>();
                    }

                    for (int j = 1; j < Levels[i]; j++)
                    {
                        ParentItem  = (TreeViewItem)ParentItems[ParentItems.Count - 1];
                        ParentItems = (ObservableCollection <TreeViewItem>)ParentItem.ItemsSource;
                        if (ParentItems == null)
                        {
                            ParentItems = new ObservableCollection <TreeViewItem>();
                        }
                    }

                    TreeViewItem SingleItem = new TreeViewItem();
                    SingleItem.Header = Values[i];

                    ParentItems.Add(SingleItem);

                    ParentItem.ItemsSource = ParentItems;
                }
                else
                {
                    TreeViewItem SingleItem = new TreeViewItem();
                    SingleItem.Header = Values[i];
                    Element.Items.Add(SingleItem);
                }
            }
        }
예제 #10
0
 internal Parent GetParentByIdx(int idx)
 {
     if (ParentItems == null || ParentItems.Count <= 0) return null;
     return ParentItems.Where(x => x.Idx == idx).FirstOrDefault();
 }