示例#1
0
        public VoculaSite GetSite(string name)
        {
            VoculaSite site = new VoculaSite();

            try {
                if (Directory.Exists(this.SiteDirectory + Path.DirectorySeparatorChar + name))
                {
                    site              = GetYamlOfSite(this.SiteDirectory + Path.DirectorySeparatorChar + name + Path.DirectorySeparatorChar + $"site.{this.Lang}.yaml");
                    site.Name         = name;
                    site.Alternatives = this.Tools.GetAlternatives(Array.FindAll(Directory.GetFiles(this.SiteDirectory + Path.DirectorySeparatorChar + name + Path.DirectorySeparatorChar, "*.yaml"), x => x.Like($"%{Path.DirectorySeparatorChar}site.%.yaml")));
                }
            } catch { }
            return(site);
        }
示例#2
0
        private VoculaSite GetYamlOfSite(string yamlFilePath)
        {
            VoculaSite site;

            if (File.Exists(yamlFilePath))
            {
                var deserializer = new DeserializerBuilder()
                                   .Build();
                site      = deserializer.Deserialize <VoculaSite>(File.OpenText(yamlFilePath));
                site.Lang = this.Lang;
            }
            else
            {
                site = new VoculaSite();
            }
            return(site);
        }
示例#3
0
        public List <VoculaSite> GetSites()
        {
            List <VoculaSite> sites = new List <VoculaSite>();

            try {
                if (Directory.Exists(this.@SiteDirectory))
                {
                    string[] dirs = Directory.GetDirectories(this.@SiteDirectory);
                    foreach (string dir in dirs)
                    {
                        VoculaSite site = new VoculaSite();
                        site              = GetYamlOfSite(dir + Path.DirectorySeparatorChar + $"site.{this.Lang}.yaml");
                        site.Name         = dir.Replace(this.SiteDirectory, "").TrimStart(Path.DirectorySeparatorChar);
                        site.Alternatives = this.Tools.GetAlternatives(Array.FindAll(Directory.GetFiles(dir + Path.DirectorySeparatorChar, "*.yaml"), x => x.Like($"%{Path.DirectorySeparatorChar}site.%.yaml")));
                        sites.Add(site);
                    }
                    sites.Sort((x, y) => String.Compare(x.Name, y.Name));
                }
            } catch { }
            return(sites);
        }