public void InitRootServer() { string filename = Servers + ".group"; if (!File.Exists(filename)) { DscServer root = new DscServer(); root.Save(filename); } }
public DscServerNode(ServerType type, string path, DscServerNode parent) { Type = type; FilePath = path; Parent = parent; Nodes = new List <DscServerNode>(); Node = DscServer.Load(FilePath); string folder = Path.GetDirectoryName(FilePath); if (folder == null) { return; } switch (type) { case ServerType.Root: case ServerType.Group: Name = Path.GetFileName(Path.GetDirectoryName(path)); string[] servers = Directory.GetFiles(folder, "*.json"); string[] groups = Directory.GetDirectories(folder); foreach (string server in servers) { Nodes.Add(new DscServerNode(ServerType.Server, server, this)); } foreach (string group in groups) { Nodes.Add(new DscServerNode(ServerType.Group, group + "\\.group", this)); } break; case ServerType.Server: string fileName = Path.GetFileName(path); if (fileName != null) { Name = fileName.Replace(".json", ""); } break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
// Create new server or server group public DscServerNode NewServerNode(string name, DscServerNode.ServerType type, DscServerNode parent) { if (parent == null || string.IsNullOrWhiteSpace(name)) { return(null); } string fileFolder = Path.GetDirectoryName(parent.FilePath); if (fileFolder == null) { return(null); } string fileName; if (type == DscServerNode.ServerType.Server) { fileName = Path.Combine(fileFolder, name + @".json"); } else { fileName = Path.Combine(fileFolder, name, @".group"); FileSystem.DirectoryCreateIfNotExists(Path.GetDirectoryName(fileName)); } DscServer server = new DscServer(); server.Save(fileName); DscServerNode serverNode = new DscServerNode(type, fileName, parent); parent.Nodes.Add(serverNode); return(serverNode); }