aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/Services/System/StorageService.cs
diff options
context:
space:
mode:
authorivar <i@oiee.no>2024-03-19 01:02:22 +0100
committerivar <i@oiee.no>2024-03-19 01:02:22 +0100
commit5f604b3052dab1d51dc130df2470bf330b283ec6 (patch)
treeae00e1fe4542850467555b4e3af41964ba8d878b /code/api/Services/System/StorageService.cs
parent63cf177e8cf22e349534664d59a6926f8b36863d (diff)
downloadstorage-5f604b3052dab1d51dc130df2470bf330b283ec6.tar.xz
storage-5f604b3052dab1d51dc130df2470bf330b283ec6.zip
Max lenghts on db schema
Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs
Diffstat (limited to 'code/api/Services/System/StorageService.cs')
-rw-r--r--code/api/Services/System/StorageService.cs88
1 files changed, 43 insertions, 45 deletions
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<StorageService> _logger;
+ public async Task<List<FileSystemEntry>> 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<StorageService> logger) {
- _database = database;
- _logger = logger;
- }
-
- public async Task<List<FileSystemEntry>> 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<FileSystemEntry> 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<FileSystemEntry> 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);
+ }
+}