From 5f604b3052dab1d51dc130df2470bf330b283ec6 Mon Sep 17 00:00:00 2001 From: ivar Date: Tue, 19 Mar 2024 01:02:22 +0100 Subject: Max lenghts on db schema Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs --- code/api/Services/System/StorageService.cs | 88 +++++++++++++++--------------- 1 file changed, 43 insertions(+), 45 deletions(-) (limited to 'code/api/Services/System/StorageService.cs') diff --git a/code/api/Services/System/StorageService.cs b/code/api/Services/System/StorageService.cs index 328be2c..9c6e0ac 100644 --- a/code/api/Services/System/StorageService.cs +++ b/code/api/Services/System/StorageService.cs @@ -1,48 +1,46 @@ -namespace I2R.Storage.Api.Services.System; +namespace Quality.Storage.Api.Services.System; -public class StorageService +public class StorageService(AppDatabase database) { - private readonly AppDatabase _database; - private readonly ILogger _logger; + public async Task> GetFileSystemEntriesAsync(Guid parent = default) { + var fileSystemEntriesContext = database.Folders + .Include(c => c.Files) + .ConditionalWhere(() => parent != default, folder => folder.ParentId == parent) + .Select(p => new FileSystemEntry { + Id = p.Id, + Name = p.Name, + MimeType = SystemConstants.FolderMimeType, + SizeInBytes = -1, + Files = p.Files.Select(c => new FileSystemEntry { + Id = c.Id, + Name = c.Name, + MimeType = c.MimeType, + SizeInBytes = c.SizeInBytes + }) + .ToList() + }) + .KeysetPaginate(builder => { + builder.Ascending(entry => entry.Name); + }); + var fileSystemEntries = await fileSystemEntriesContext.Query.ToListAsync(); + fileSystemEntriesContext.EnsureCorrectOrder(fileSystemEntries); + return fileSystemEntries; + } - public StorageService(AppDatabase database, ILogger logger) { - _database = database; - _logger = logger; - } - - public async Task> GetFileSystemEntriesAsync(Guid parent = default) { - var fileSystemEntriesContext = _database.Folders - .Include(c => c.Files) - .ConditionalWhere(() => parent != default, folder => folder.ParentId == parent) - .Select(p => new FileSystemEntry() { - Id = p.Id, - Name = p.Name, - MimeType = SystemConstants.FolderMimeType, - SizeInBytes = -1, - Files = p.Files.Select(c => new FileSystemEntry() { - Id = c.Id, - Name = c.Name, - MimeType = c.MimeType, - SizeInBytes = c.SizeInBytes - }).ToList() - }) - .KeysetPaginate(builder => { builder.Ascending(entry => entry.Name); }); - var fileSystemEntries = await fileSystemEntriesContext.Query.ToListAsync(); - fileSystemEntriesContext.EnsureCorrectOrder(fileSystemEntries); - return fileSystemEntries; - } - - public async Task GetFileSystemEntryAsync(Guid folder) { - return _database.Folders.Include(c => c.Files).Select(c => new FileSystemEntry() { - Id = c.Id, - SizeInBytes = -1, - MimeType = SystemConstants.FolderMimeType, - Files = c.Files.Select(p => new FileSystemEntry() { - SizeInBytes = p.SizeInBytes, - MimeType = p.MimeType, - Id = p.Id, - Name = p.Name - }).ToList() - }).FirstOrDefault(c => c.Id == folder); - } -} \ No newline at end of file + public Task GetFileSystemEntryAsync(Guid folderId) { + return database.Folders.Include(c => c.Files) + .Select(c => new FileSystemEntry { + Id = c.Id, + SizeInBytes = -1, + MimeType = SystemConstants.FolderMimeType, + Files = c.Files.Select(p => new FileSystemEntry { + SizeInBytes = p.SizeInBytes, + MimeType = p.MimeType, + Id = p.Id, + Name = p.Name + }) + .ToList() + }) + .FirstOrDefaultAsync(c => c.Id == folderId); + } +} -- cgit v1.3