public void InitRootServer()
        {
            string filename = Servers + ".group";

            if (!File.Exists(filename))
            {
                DscServer root = new DscServer();
                root.Save(filename);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        // 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);
        }