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 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; }); } } } ); } }