diff --git a/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor b/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor new file mode 100644 index 00000000..6110b0bd --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor @@ -0,0 +1,69 @@ +@page "/admin/usb/vendors/{id:int}" +@attribute [Authorize] +@layout AdminLayout +@rendermode InteractiveServer + +@inject Microsoft.EntityFrameworkCore.IDbContextFactory DbContextFactory + +USB vendor + +@if(!_initialized) +{ +
+

Loading...

+
+ + return; +} + +
+
+

USB vendor

+
+
+
+ @DisplayNameHelper.GetDisplayName(typeof(UsbVendor), nameof(UsbVendor.Vendor)) +
+
+ @_model?.Vendor +
+
+ @DisplayNameHelper.GetDisplayName(typeof(UsbVendor), nameof(UsbVendor.VendorId)) +
+
+ @_model?.VendorId +
+
+
+
+

Products:

+ + + + + + + + + @foreach(UsbProductModel item in _products) + { + + + + + } + +
+ @DisplayNameHelper.GetDisplayName(typeof(UsbProductModel), nameof(UsbProductModel.ProductName)) + + @DisplayNameHelper.GetDisplayName(typeof(UsbProductModel), nameof(UsbProductModel.ProductId)) +
+ @item.ProductName + + @item.ProductId +
+
+
+ Back to List +
+
\ No newline at end of file diff --git a/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor.cs b/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor.cs new file mode 100644 index 00000000..8cb61558 --- /dev/null +++ b/Aaru.Server/Components/Admin/Pages/Usb/Vendors/Details.razor.cs @@ -0,0 +1,40 @@ +using Aaru.Server.Database.Models; +using Microsoft.AspNetCore.Components; +using Microsoft.EntityFrameworkCore; +using DbContext = Aaru.Server.Database.DbContext; + +namespace Aaru.Server.Components.Admin.Pages.Usb.Vendors; + +public partial class Details +{ + bool _initialized; + UsbVendor? _model; + List _products; + [Parameter] + public int Id { get; set; } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + + StateHasChanged(); + + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + + _model = await ctx.UsbVendors.FirstOrDefaultAsync(m => m.VendorId == Id); + + _products = await ctx.UsbProducts.Where(p => p.Vendor.VendorId == Id) + .OrderBy(static p => p.Product) + .ThenBy(static p => p.ProductId) + .Select(static p => new UsbProductModel + { + ProductId = p.ProductId, + ProductName = p.Product + }) + .ToListAsync(); + + _initialized = true; + + StateHasChanged(); + } +} \ No newline at end of file