public void UpdateTreeView() { var selectedFolder = FindTreeView(allHierarchyFolderList, ServiceLocator.Get <IFolderService>().SelectedFolderId); SecureItemList.All(x => x.ShowLastModifiedDate = _sortBySelectedIndex == 4); if (_sortBySelectedIndex != 6) { if (selectedFolder != null) { HierarchyFolderList = new ObservableCollection <FolderView>() { selectedFolder } } ; else { HierarchyFolderList = new ObservableCollection <FolderView>(allHierarchyFolderList); } SortTreeItemsCollection(HierarchyFolderList); HierarchyFolderList = new ObservableCollection <FolderView>(HierarchyFolderList.OrderBy(x => x, new CompareCommonViews())); } else { RebuildByTypeTreeView(selectedFolder == null ? SecureItemList : selectedFolder.GetAllSecureItems()); HierarchyFolderList = new ObservableCollection <FolderView>(allHierarchyTypeList); } }
private void RefreshList(object sender, RoutedEventArgs e) { if (pbData.Locked) { return; } ShowLandingScreen = pbData.GetSecureItemCountByType(SecureItemType) == 0 ? true : false; Stopwatch watch = new Stopwatch(); watch.Start(); if (forceReloadFromDatabase || SecureItemList == null || SecureItemList.Count == 0 || lastSortIndex != SortBySelectedIndex || _recommendedsiteFlag || pbData.IsSecureItemOrSiteChanged(lastCheckDate) || lastAccount != pbData.ActiveUser) //TODO: We should check are there any changes in DB and if there are only then reload { List <SecureItemViewModel> items = GetViewItems(_recommendedsiteFlag); SecureItemList.Clear(); items.ForEach(x => { x.FavoritesIcon_Clicked += FavoriteImage_Clicked; x.OpenInBrowser_Clicked += OpenBrowser_Clicked; x.SharingIcon_Clicked += ShareImage_Clicked; x.DeletingIcon_Clicked += DeleteImage_Clicked; x.Edit_Clicked += Edit_Clicked; x.AddNewFolder_Clicked += AddNewFolder_Clicked; }); SecureItemList = new List <ISecureItemVM>(items); RebuildFolderTreeView(items); lastCheckDate = DateTime.Now; lastSortIndex = SortBySelectedIndex; lastAccount = pbData.ActiveUser; } UpdateTreeView(); forceReloadFromDatabase = false; watch.Stop(); logger.Debug("SecureItemsHolderViewModel.RefreshList: Elapsed time {0}", watch.ElapsedMilliseconds); }