コード例 #1
0
        private void LoadCache(
            IDirectoryManagerAsync directoryManager,
            IPathManager pathManager,
            IFileManagerAsync fileManager,
            IConfiguration configuration)
        {
            var allChildFilesResult = base.GetAllChildFilesAsync().Result;

            if (!allChildFilesResult.IsSuccess)
            {
                throw allChildFilesResult.Exception;
            }

            var allChildFoldersResult = base.GetAllChildFolderAsync().Result;

            if (!allChildFoldersResult.IsSuccess)
            {
                throw allChildFoldersResult.Exception;
            }

            _childFileNameToFile = new ConcurrentDictionary <string, SystemFile>(allChildFilesResult.Data
                                                                                 .ToDictionary(file => file.Name, file => file));

            _childFolderNameToCacheFolder = new ConcurrentDictionary <string, CacheFolder>(allChildFoldersResult.Data
                                                                                           .ToDictionary(
                                                                                               folder => folder.Name,
                                                                                               folder => new CacheFolder(
                                                                                                   directoryManager,
                                                                                                   pathManager,
                                                                                                   fileManager,
                                                                                                   folder.FullPath,
                                                                                                   configuration,
                                                                                                   this)));
        }
コード例 #2
0
 public CacheFolderProvider(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     IConfiguration configuration) :
     base(directoryManager, pathManager, fileManager, configuration)
 {
 }
コード例 #3
0
 public BufferedFolder(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     string relativePath,
     IConfiguration configuration)
     : base(directoryManager, pathManager, fileManager, relativePath, configuration)
 {
 }
コード例 #4
0
 public FolderContentSearchManager(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     IConfiguration configuration)
 {
     _pathManager    = pathManager;
     _configuration  = configuration;
     _folderProvider = new CacheSearchFolderProvider(directoryManager, pathManager, fileManager, configuration);
 }
コード例 #5
0
 public BufferedFolderProvider(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     IConfiguration configuration)
 {
     _directoryManager = directoryManager;
     _pathManager      = pathManager;
     _fileManager      = fileManager;
     _configuration    = configuration;
 }
コード例 #6
0
        public CacheFolder(
            IDirectoryManagerAsync directoryManager,
            IPathManager pathManager,
            IFileManagerAsync fileManager,
            string relativePath,
            IConfiguration configuration,
            CacheFolder parent) :
            base(directoryManager, pathManager, fileManager, relativePath, configuration)
        {
            _parent = parent;

            LoadCache(directoryManager, pathManager, fileManager, configuration);
        }
コード例 #7
0
 public SearchFolder(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     string relativePath,
     IConfiguration configuration,
     CacheFolder parent)
     : base(directoryManager, pathManager, fileManager, relativePath, configuration, parent)
 {
     CreationTime = ModificationTime = $"{DateTime.Now:G}";
     Name         = FolderName;
     Type         = FolderContentType.FolderPageResult;
 }
コード例 #8
0
        public UploadFileManager(
            IDirectoryManagerAsync directoryManager,
            IPathManager pathManager,
            IFileManagerAsync fileManager,
            IConfiguration configuration) :
            base(new BufferedFolderProvider(directoryManager, pathManager, fileManager, configuration), pathManager)
        {
            var createUploadFolderResult = CreateUploadFolder(configuration);

            if (!createUploadFolderResult.IsSuccess)
            {
                throw createUploadFolderResult.Exception;
            }
        }
コード例 #9
0
 protected SystemContentBase(
     IDirectoryManagerAsync directoryManager,
     IPathManager pathManager,
     IFileManagerAsync fileManager,
     string relativePath,
     IConfiguration configuration)
 {
     DirectoryManager = directoryManager;
     PathManager      = pathManager;
     Configuration    = configuration;
     FileManager      = fileManager;
     FullPath         = GetFullPath(relativePath);
     Name             = GetName();
     RelativePath     = GetRelativePath();
 }
コード例 #10
0
        protected CacheFolderProviderBase(
            IDirectoryManagerAsync directoryManager,
            IPathManager pathManager,
            IFileManagerAsync fileManager,
            IConfiguration configuration)
        {
            //var homeFolderPathResult = pathManager.Combine(configuration.HomeFolderPath, configuration.HomeFolderName);

            //if (!homeFolderPathResult.IsSuccess)
            //{
            //    throw homeFolderPathResult.Exception;
            //}

            Root = Root ?? new CacheFolder(
                directoryManager,
                pathManager,
                fileManager,
                configuration.HomeFolderPath,
                configuration,
                null);
        }