private ObservableCollection <NodeVM> ConvertToNodes(List <string> nodesList, int level) { if (nodesList != null) { bool isLastLevel = level == NodeService.GetLastLevel((int)settings.presentation) ? true : false; List <NodeVM> result = new List <NodeVM>(); foreach (var node in nodesList) { if (!string.IsNullOrEmpty(node)) { result.Add(new NodeVM(new Node() { Level_id = level, Name = node }, false) { IsLastLevel = isLastLevel, Parent = this.SelectedNodeVM }); } } return(new ObservableCollection <NodeVM>(result)); } else { return(null); } }
private async void AddNode(bool isChild) { if (SelectedNodeVM != null) { if (SelectedNodeVM.IsLastLevel && isChild) { MessagesService.Show("ДОБАВЛЕНИЕ", "Выбран низший уровень. Добавление не возможно."); return; } string nodeName = await MessagesService.GetInput("ДОБАВЛЕНИЕ ВЕТКИ", "Введите наименование"); if (!string.IsNullOrEmpty(nodeName)) { if (!isChild) { if (SelectedNodeVM.Node.Level_id == 1) { if (NodeVMs.Count(n => n.Node != null && n.Node.Name != null && n.Node.Name.ToLower() == nodeName.ToLower()) == 0) { NodeVMs.Add(new NodeVM(new Node() { Level_id = SelectedNodeVM.Node.Level_id, Name = nodeName }, false) { IsLastLevel = SelectedNodeVM.IsLastLevel, Parent = SelectedNodeVM.Parent }); } else { MessagesService.Show("ДОБАВЛЕНИЕ ВЕТКИ", "Ветка с таким именем уже существует"); } } else { if (SelectedNodeVM.Parent.Children.Count(n => n.Node.Name.ToLower() == nodeName.ToLower()) == 0) { SelectedNodeVM.Parent.Children.Add(new NodeVM(new Node() { Level_id = SelectedNodeVM.Node.Level_id, Name = nodeName }, false) { IsLastLevel = SelectedNodeVM.IsLastLevel, Parent = SelectedNodeVM.Parent }); } else { MessagesService.Show("ДОБАВЛЕНИЕ ВЕТКИ", "Ветка с таким именем уже существует"); } } } else { if (SelectedNodeVM.Children.Count(n => n.Node.Name.ToLower() == nodeName.ToLower()) == 0) { SelectedNodeVM.Children.Add(new NodeVM(new Node() { Level_id = SelectedNodeVM.Node.Level_id + 1, Name = nodeName }, false) { IsLastLevel = (SelectedNodeVM.Node.Level_id + 1 == NodeService.GetLastLevel((int)settings.presentation) ? true : false), Parent = SelectedNodeVM }); } else { MessagesService.Show("ДОБАВЛЕНИЕ ВЕТКИ", "Ветка с таким именем уже существует"); } } } } else { MessagesService.Show("ДОБАВЛЕНИЕ", "Не выбрана ветка."); } }