private void RefreshRootKnowledgeGroups() { OnUIThread(() => { RootKnowledgeGroups.Clear(); KnowledgeArticleCommunicationControl.ClearAllCommunicationItems(); }); if (_customersRepository != null && _customersRepository.KnowledgeBaseGroups != null) { Task.Factory.StartNew(() => { return(_customersRepository.KnowledgeBaseGroups.Where(x => x.Parent == null).ToList()); }) .ContinueWith(t => { OnUIThread(() => { foreach (var item in t.Result) { var knowledgeGroupParameter = new KeyValuePair <string, object>("item", item); var knowledgeGroupViewModel = (IViewModel)_knowledgeVmFactory.GetViewModelInstance(knowledgeGroupParameter); RootKnowledgeGroups.Add(knowledgeGroupViewModel); } }); }); } OnUIThread(() => { KnowledgeArticleCommunicationControl.IsInitialized = true; OnPropertyChanged("RootKnowledgeGroups"); }); }
private void RaiseTreeItemDelete(object knowlegeGroupViewModel) { if ((knowlegeGroupViewModel as KnowledgeGroupViewModel) != null) { SelectedKnowledgeGroup = (knowlegeGroupViewModel as KnowledgeGroupViewModel); } bool canDelete = false; if (SelectedKnowledgeGroup != null) { var articles = GetKnowledgeBaseArticles(SelectedKnowledgeGroup as KnowledgeGroupViewModel); var children = (SelectedKnowledgeGroup as KnowledgeGroupViewModel).GetChildren((SelectedKnowledgeGroup as KnowledgeGroupViewModel).OriginalItem); //var subGroup = _customersRepository.KnowledgeBaseGroups.Where(x => x.Parent.KnowledgeBaseGroupId == (SelectedKnowledgeGroup as KnowledgeGroupViewModel).OriginalItem.KnowledgeBaseGroupId).ToList(); canDelete = (articles != null && articles.Count() == 0 && children != null && children.Count() == 0); } if (CommonConfirmRequest != null && canDelete) { CommonConfirmRequest.Raise( new Confirmation { Title = "Remove group?".Localize(), Content = (SelectedKnowledgeGroup as KnowledgeGroupViewModel).InnerItem.Name }, (x) => { if (x.Confirmed) { Task.Factory.StartNew(() => { ShowLoadingAnimation = true; (SelectedKnowledgeGroup as KnowledgeGroupViewModel).RemoveFromDB(); }) .ContinueWith(t => { if (t.Exception == null) { OnUIThread(() => { if ((SelectedKnowledgeGroup as KnowledgeGroupViewModel).Parent != null) { SelectedKnowledgeGroup = (SelectedKnowledgeGroup as KnowledgeGroupViewModel).Parent; (SelectedKnowledgeGroup as KnowledgeGroupViewModel).Refresh(); } else { RootKnowledgeGroups.Remove(SelectedKnowledgeGroup as KnowledgeGroupViewModel); SelectedKnowledgeGroup = null; } //TODO: update treeview }); } ShowLoadingAnimation = false; }); } } ); } }
private void RaiseCreateKnowledgeGroupCommand(object knowlegeGroupViewModel) { var parentVM = (knowlegeGroupViewModel as KnowledgeGroupViewModel) ?? SelectedKnowledgeGroup as KnowledgeGroupViewModel; if (AddKnowledgeBaseGroupDialogRequest != null) { AddKnowledgeBaseGroupDialogRequest.Raise( new Confirmation { Title = "Add group".Localize(), Content = new KnowledgeGroupViewModel(_repositoryFactory, _groupVmFactory, _repositoryFactory.GetRepositoryInstance(), _entityFactory, new KnowledgeBaseGroup() { ParentId = parentVM != null ? parentVM.OriginalItem.KnowledgeBaseGroupId : null }) }, (x) => { if (x.Confirmed) { var currentGroup = (x.Content as KnowledgeGroupViewModel); if (currentGroup != null && currentGroup.InnerItem != null) { Task.Factory.StartNew(() => { ShowLoadingAnimation = true; (x.Content as KnowledgeGroupViewModel).InsertToDB(); }) .ContinueWith(t => { if (t.Exception == null) { OnUIThread(() => { if (parentVM != null) { if (parentVM.IsExpanded) { parentVM.Refresh(); } else { parentVM.IsExpanded = true; } } else { RootKnowledgeGroups.Add(x.Content as KnowledgeGroupViewModel); } }); } ShowLoadingAnimation = false; }); } } } ); } }
public void Drop(DropInfo dropInfo) { var droppedVM = dropInfo.Data; var targetVM = dropInfo.TargetItem; if (droppedVM is IHierarchy) { // preparing to refresh UI var sourceVM = droppedVM as HierarchyViewModelBase; var sourceParentVM = sourceVM.Parent; Task.Factory.StartNew(() => { ShowLoadingAnimation = true; ((IHierarchy)droppedVM).SetParent(null, targetVM); }) .ContinueWith(t => { if (t.Exception == null) { OnUIThread(() => { // refresh UI if (sourceParentVM != null) { sourceParentVM.LoadChildrens(); } else { RootKnowledgeGroups.Remove(droppedVM as KnowledgeGroupViewModel); } ((HierarchyViewModelBase)targetVM).LoadChildrens(); }); } ShowLoadingAnimation = false; }); } }