@page "/dms/list" @using MudBlazor @using Pldpro.Web.UI.Models @inject Pldpro.Web.UI.Services.IDocumentClient Client @inject NavigationManager Nav @foreach (var b in _buckets) { @b } Suchen Upload Datei Bucket Pfad Größe Geändert @context.FileName @context.Bucket @context.PathPrefix @context.Size?.ToString("N0") @context.LastModified Details Zurück Seite @(_page + 1) Weiter @code { private List _buckets = new(); private string? _bucket; private string? _prefix; private string? _query; private int _page = 0, _pageSize = 25, _total = 0; private List _items = new(); protected override async Task OnInitializedAsync() { _buckets = (await Client.ListBucketsAsync()).ToList(); _bucket = _buckets.FirstOrDefault(); if (!string.IsNullOrWhiteSpace(_bucket)) await Reload(); } private async Task Reload() { if (string.IsNullOrWhiteSpace(_bucket)) return; var (items, total) = await Client.SearchAsync(_bucket!, _query, _prefix, _page, _pageSize); _items = items.ToList(); // <- Items ist List _total = total; } private async Task Prev() { if (_page > 0) { _page--; await Reload(); } } private async Task Next() { if (((_page + 1) * _pageSize) < _total) { _page++; await Reload(); } } private static string EncodeKeyForPath(string key) => string.Join("/", (key ?? string.Empty) .Split('/', StringSplitOptions.RemoveEmptyEntries) .Select(Uri.EscapeDataString)); }