@page "/library" @inject VideoStudy.Shared.Services.PersistenceService PersistenceService @using VideoStudy.Shared @using System.Diagnostics

📚 Minha Biblioteca

@if (!string.IsNullOrEmpty(currentFolder)) { }
@if (string.IsNullOrEmpty(currentFolder)) {
📁
Geral
@GetCount("Geral") arquivos
@foreach (var folder in folders) { if (folder == "Geral") continue;
📁
@folder
@GetCount(folder) arquivos
}
} else {
Pasta: @currentFolder
@foreach (var session in currentSessions) {
📄
@session.Title
📅 @session.CreatedAt.ToString("g") • @session.FilePath
} @if (!currentSessions.Any()) {
Esta pasta está vazia 🕸️
}
}
@code { private List folders = new(); private List allSessions = new(); private List currentSessions = new(); private string? currentFolder = null; protected override void OnInitialized() { LoadData(); } private void LoadData() { // Ler estrutura física e banco folders = PersistenceService.GetFolders(); if (!folders.Contains("Geral")) folders.Insert(0, "Geral"); // Garantir Geral allSessions = PersistenceService.GetAllSessions(); } private int GetCount(string folder) { return allSessions.Count(s => s.FolderName == folder); } private void OpenFolder(string folderName) { currentFolder = folderName; currentSessions = allSessions.Where(s => s.FolderName == folderName).ToList(); } private void GoBack() { currentFolder = null; } private void OpenPdf(string path) { try { if (File.Exists(path)) { new Process { StartInfo = new ProcessStartInfo(path) { UseShellExecute = true } }.Start(); } } catch { // Tratamento simples, idealmente mostraria um toast } } }