private void UpdateSettings() { m_paths.Clear(); JsonNode settingsNode = (JsonNode)JsonHelperFunctions.Parse(m_settings.GetContent<string>()); if (settingsNode == null) return; JsonArray jsonArray = settingsNode.GetObjectOrDefault<JsonArray>("templates", null); List<ITreeNode> nodes = m_root.Children.ToList(); if (jsonArray != null) { foreach (JsonValue path in jsonArray) { m_paths.Add((string)path.Value); ITreeNode treeNode = m_root.Children.FirstOrDefault(n => n.Path == (string)path.Value); if (treeNode == null) { if (Directory.Exists((string) path.Value)) { DirectoryViewModel directoryViewModel = new DirectoryViewModel((string)path.Value); directoryViewModel.AllFiles.CollectionChanged += AllFilesOnCollectionChanged; foreach (FileViewModel fileViewModel in directoryViewModel.AllFiles) { if (fileViewModel.Path.EndsWith("template.json")) Templates.Add(new Template(fileViewModel)); } m_root.Children.Add(directoryViewModel); } } else nodes.Remove(treeNode); } } foreach (ITreeNode treeNode in nodes) m_root.Children.Remove(treeNode); }
public DirectoryViewModel CreateDirectory(string name) { if (Directory.Exists(Path + "\\" + name)) return m_children.FirstOrDefault(n => n.Name == name) as DirectoryViewModel; DirectoryViewModel directoryViewModel = new DirectoryViewModel(Path + "\\" + name, this, m_allFiles, m_synchronizationContext); m_children.Add(directoryViewModel); try { Directory.CreateDirectory(Path + "\\" + name); } catch (Exception) { m_children.Remove(directoryViewModel); return null; } return directoryViewModel; }