diff --git a/Marechai/Areas/Admin/Views/Home/Index.cshtml b/Marechai/Areas/Admin/Views/Home/Index.cshtml index 37657fbf..2d276cb4 100644 --- a/Marechai/Areas/Admin/Views/Home/Index.cshtml +++ b/Marechai/Areas/Admin/Views/Home/Index.cshtml @@ -34,16 +34,10 @@

Administration

Database administrative pages

- Browser tests -
- Companies -
Company descriptions
Company logos
- GPUs -
GPUs by machine
Instruction sets diff --git a/Marechai/Marechai.csproj b/Marechai/Marechai.csproj index f558951c..4e0cd9d6 100644 --- a/Marechai/Marechai.csproj +++ b/Marechai/Marechai.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 3.0.99.1052 + 3.0.99.1053 Canary Islands Computer Museum Copyright © 2003-2020 Natalia Portillo Canary Islands Computer Museum Website @@ -49,6 +49,9 @@ true + + true + <_ContentIncludedByDefault Remove="Areas\Admin\Views\BrowserTests\Delete.cshtml" /> diff --git a/Marechai/Areas/Admin/Views/Gpus/Index.cshtml b/Marechai/Pages/Admin/Gpus.razor similarity index 57% rename from Marechai/Areas/Admin/Views/Gpus/Index.cshtml rename to Marechai/Pages/Admin/Gpus.razor index 86dfaadc..94042d3d 100644 --- a/Marechai/Areas/Admin/Views/Gpus/Index.cshtml +++ b/Marechai/Pages/Admin/Gpus.razor @@ -1,14 +1,14 @@ -@{ - /****************************************************************************** +@{ +/****************************************************************************** // MARECHAI: Master repository of computing history artifacts information // ---------------------------------------------------------------------------- // -// Filename : Index.cshtml +// Filename : DocumentPeople.razor // Author(s) : Natalia Portillo // // --[ Description ] ---------------------------------------------------------- // -// Admin view index +// List of graphics processing units // // --[ License ] -------------------------------------------------------------- // @@ -29,63 +29,79 @@ // Copyright © 2003-2020 Natalia Portillo *******************************************************************************/ } -@model IEnumerable -@{ - ViewData["Title"] = "GPUs (Admin)"; +@page "/admin/gpus" +@inherits OwningComponentBase +@inject IStringLocalizer L +@attribute [Authorize(Roles = "UberAdmin, Admin")] +

@L["Graphics Processing Units"]

+@if (_gpus is null) +{ +

@L["Loading..."]

+ + return; } -

GPUs

- - Create New - + + @L["Create New"] +

- @foreach (var item in Model) + @foreach (var item in _gpus) { } -
- @Html.DisplayNameFor(model => model.Company) + @L["Company"] - @Html.DisplayNameFor(model => model.Name) + @L["Name"] - @Html.DisplayNameFor(model => model.ModelCode) + @L["Model code"] - @Html.DisplayNameFor(model => model.Introduced) + @L["Introduced"]
- @Html.DisplayFor(modelItem => item.Company) + @item.Company - @Html.DisplayFor(modelItem => item.Name) + @item.Name - @Html.DisplayFor(modelItem => item.ModelCode) + @item.ModelCode - @Html.DisplayFor(modelItem => item.IntroducedView) + @item.IntroducedView - - Details - - - Edit - - - Delete - + + @L["Details"] + + + @L["Edit"] + + + @L["Delete"] +
\ No newline at end of file + + +@code +{ + List _gpus; + + protected override async Task OnInitializedAsync() + { + _gpus = await Service.GetAsync(); + } +} \ No newline at end of file diff --git a/Marechai/Pages/Admin/Index.razor b/Marechai/Pages/Admin/Index.razor index 05a4bf14..4a1d2eb2 100644 --- a/Marechai/Pages/Admin/Index.razor +++ b/Marechai/Pages/Admin/Index.razor @@ -36,19 +36,36 @@ @attribute [Authorize(Roles = "UberAdmin, Admin")]

@L["Administration area"]

@L["Welcome to the administration area. Act with care!"]

- +
+
+

@L["Administrative pages for documents"]

+ +
+
+

@L["Administrative pages for owned machines"]

+
+
+

@L["User administrative pages"]

+
\ No newline at end of file diff --git a/Marechai/Resources/Services/AdminService.es.resx b/Marechai/Resources/Services/AdminService.es.resx index 83b622fc..547b0647 100644 --- a/Marechai/Resources/Services/AdminService.es.resx +++ b/Marechai/Resources/Services/AdminService.es.resx @@ -146,4 +146,24 @@ Personas de documentos Document people. + + Unidades de proceso de gráficos + Graphics Processing Units. + + + Páginas de administración de la base de datos + Database administrative pages. + + + Páginas de administración de documentos + Administrative pages for documents. + + + Páginas de administración para máquinas en propiedad + Administrative pages for owned machines. + + + Páginas de administración de usuarios + User administrative pages. + \ No newline at end of file diff --git a/Marechai/Resources/Services/GpusService.es.resx b/Marechai/Resources/Services/GpusService.es.resx new file mode 100644 index 00000000..b1e3fa00 --- /dev/null +++ b/Marechai/Resources/Services/GpusService.es.resx @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Unidades de proceso de gráficos + Graphics Processing Units. + + + Cargando... + Message that appears while data is being loaded from database + + + Compañía + Company + + + Nombre + Name + + + Modelo + Model code + + + Introducida en + Introduced + + + Crear nueva + Create new document company + + + Detalles + Details + + + Editar + Edit + + + Eliminar + Delete + + \ No newline at end of file diff --git a/Marechai/Services/GpusService.cs b/Marechai/Services/GpusService.cs new file mode 100644 index 00000000..46c4c9ec --- /dev/null +++ b/Marechai/Services/GpusService.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Marechai.Database.Models; +using Marechai.ViewModels; +using Microsoft.EntityFrameworkCore; + +namespace Marechai.Services +{ + public class GpusService + { + readonly MarechaiContext _context; + + public GpusService(MarechaiContext context) => _context = context; + + public async Task> GetAsync() => await _context.Gpus.Include(g => g.Company).OrderBy(g => g.Company.Name).ThenBy(g => g.Name). + ThenBy(g => g.Introduced).Select(g => new GpuViewModel + { + Id = g.Id, Company = g.Company.Name, + Introduced = g.Introduced, + ModelCode = g.ModelCode, Name = g.Name + }).ToListAsync(); + } +} \ No newline at end of file diff --git a/Marechai/Services/Register.cs b/Marechai/Services/Register.cs index 1ce2f514..fef0c514 100644 --- a/Marechai/Services/Register.cs +++ b/Marechai/Services/Register.cs @@ -50,6 +50,7 @@ namespace Marechai.Services services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/Marechai/ViewModels/GpuViewModel.cs b/Marechai/ViewModels/GpuViewModel.cs index 13c28b6e..d316d004 100644 --- a/Marechai/ViewModels/GpuViewModel.cs +++ b/Marechai/ViewModels/GpuViewModel.cs @@ -14,5 +14,7 @@ namespace Marechai.ViewModels public float? ProcessNm { get; set; } public float? DieSize { get; set; } public long? Transistors { get; set; } + + public string IntroducedView => Introduced?.ToShortDateString() ?? "Unknown"; } } \ No newline at end of file