Exemple #1
0
        public async Task <Directory> ListDirectory(string directoryId, StorageSortType sortType = StorageSortType.DateDescending)
        {
            var directory = await database.DirectoryRepository.FindDirectoryWithContent(directoryId, currentUserId);

            if (directory == null)
            {
                return(null);
            }

            directory.Files          = SortFiles(sortType, directory.Files);
            directory.Subdirectories = directory.Subdirectories.OrderByDescending(d => d.DateUpdated).ToList();

            return(directory);
        }
Exemple #2
0
 private static List <File> SortFiles(StorageSortType sortType, IEnumerable <File> files)
 => (sortType switch
Exemple #3
0
        public async Task <List <File> > ListFiles(string directoryId = null, bool isPrivate = false, StorageSortType sortType = StorageSortType.DateDescending)
        {
            var files = (!isPrivate
                ? await database.FileRepository.GetWhere(f => f.UserId == null && f.DirectoryId == directoryId)
                : await database.FileRepository.GetWhere(f => f.UserId == currentUserId && f.DirectoryId == directoryId))
                        .ToList();

            files = SortFiles(sortType, files);

            return(files);
        }
Exemple #4
0
        public async Task <IActionResult> Directory(string id, [FromQuery] bool isPrivate = false, StorageSortType sortType = StorageSortType.DateDescending)
        {
            directoryViewModel = ((DirectoryViewModel) new DirectoryViewModel(await storageManager.ListDirectory(id, sortType: sortType))
                                  .WithError().WithAlert()).SetPrivate(isPrivate);

            return(directoryViewModel.Directory != null
                ? (IActionResult)View(directoryViewModel)
                : this.AccessDeniedPage());
        }
Exemple #5
0
 public async Task <IActionResult> Private([FromQuery] StorageSortType sortType = StorageSortType.DateDescending)
 => View(storageViewModel = (StorageViewModel) new StorageViewModel(await storageManager.ListFiles(isPrivate: true, sortType: sortType),
                                                                    await storageManager.ListDirectories(isPrivate: true)).WithError().WithAlert());