Пример #1
0
 private string GetOrderFile(Site site, string themeName)
 {
     while (site != null)
     {
         var orderFile = FileOrderHelper.GetOrderFile(new Theme(site, themeName).PhysicalPath);
         if (File.Exists(orderFile))
         {
             return(orderFile);
         }
         site = site.Parent;
     }
     return(null);
 }
Пример #2
0
        public virtual IEnumerable <FileEntry> GetFiles(Site site, string dirRelativePath)
        {
            IComparer <FileResource> comparer = null;
            Site recursiveSite = site;

            while (comparer == null && recursiveSite != null)
            {
                var dir = GetDirectory(recursiveSite, dirRelativePath);
                comparer      = FileOrderHelper.GetComparer(FileOrderHelper.GetOrderFile(dir.PhysicalPath));
                recursiveSite = recursiveSite.Parent;
            }

            ICollection <FileEntry> list;

            if (comparer == null)
            {
                list = new List <FileEntry>();
            }
            else
            {
                list = new SortedSet <FileEntry>(comparer);
            }
            recursiveSite = site;
            while (recursiveSite != null)
            {
                var dir = GetDirectory(recursiveSite, dirRelativePath);
                if (dir.Exists())
                {
                    var files       = EnumerateFiles(dir.PhysicalPath);
                    var fileEntries = files.Select(it => new FileInfo(Path.Combine(dir.PhysicalPath, it)))
                                      .Where(it => !Path.GetFileName(it.FullName).Equals(FileOrderHelper.OrderFileName, StringComparison.OrdinalIgnoreCase))
                                      .Select(it => new FileEntry(GetRootDir(recursiveSite), GetRelativePath(dirRelativePath, it.Name))
                    {
                        FileSize      = it.Length,
                        Name          = it.Name,
                        FileExtension = it.Extension,
                        FileName      = Path.GetFileName(it.FullName),
                        CreateDate    = it.LastWriteTimeUtc
                    });
                    foreach (var fileEntry in fileEntries)
                    {
                        if (!list.Contains(fileEntry, new FileEntry.FileNameEqualityComparer()))
                        {
                            list.Add(fileEntry);
                        }
                    }
                }
                recursiveSite = recursiveSite.Parent;
            }
            return(list);
        }
Пример #3
0
        public virtual IEnumerable <FileEntry> GetFiles(Site site, string dirRelativePath)
        {
            var dir = GetDirectory(site, dirRelativePath);

            if (dir.Exists())
            {
                var files = EnumerateFiles(dir.PhysicalPath);
                files = FileOrderHelper.OrderFiles(FileOrderHelper.GetOrderFile(dir.PhysicalPath), files);
                return(files.Select(it => new FileInfo(Path.Combine(dir.PhysicalPath, it)))
                       .Select(it => new FileEntry(GetRootDir(site), GetRelativePath(dirRelativePath, it.Name))
                {
                    FileSize = it.Length,
                    Name = it.Name,
                    FileExtension = it.Extension,
                    FileName = it.FullName,
                    CreateDate = it.LastWriteTimeUtc
                }));
            }
            return(new FileEntry[0]);
        }