From f62c993af7116c32b14acf47f9381fa5ed6d3899 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 24 May 2020 05:24:18 +0100 Subject: [PATCH] Move document people admin index to Blazor. --- .../Controllers/DocumentPeopleController.cs | 1 + .../Admin/Views/DocumentPeople/Index.cshtml | 49 ------ Marechai/Marechai.csproj | 5 +- Marechai/Pages/Admin/DocumentCompanies.razor | 2 +- Marechai/Pages/Admin/DocumentPeople.razor | 97 +++++++++++ Marechai/Pages/Admin/Index.razor | 3 + .../Resources/Services/AdminService.es.resx | 4 + .../Services/DocumentPeopleService.es.resx | 153 ++++++++++++++++++ Marechai/Services/DocumentPeopleService.cs | 27 ++++ Marechai/Services/Register.cs | 1 + .../DocumentPersonViewModel.cs | 3 +- 11 files changed, 292 insertions(+), 53 deletions(-) delete mode 100644 Marechai/Areas/Admin/Views/DocumentPeople/Index.cshtml create mode 100644 Marechai/Pages/Admin/DocumentPeople.razor create mode 100644 Marechai/Resources/Services/DocumentPeopleService.es.resx create mode 100644 Marechai/Services/DocumentPeopleService.cs rename Marechai/{Areas/Admin/Models => ViewModels}/DocumentPersonViewModel.cs (75%) diff --git a/Marechai/Areas/Admin/Controllers/DocumentPeopleController.cs b/Marechai/Areas/Admin/Controllers/DocumentPeopleController.cs index 988d3e39..4d5df60a 100644 --- a/Marechai/Areas/Admin/Controllers/DocumentPeopleController.cs +++ b/Marechai/Areas/Admin/Controllers/DocumentPeopleController.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Marechai.Areas.Admin.Models; using Marechai.Database.Models; +using Marechai.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; diff --git a/Marechai/Areas/Admin/Views/DocumentPeople/Index.cshtml b/Marechai/Areas/Admin/Views/DocumentPeople/Index.cshtml deleted file mode 100644 index 49c4d7d0..00000000 --- a/Marechai/Areas/Admin/Views/DocumentPeople/Index.cshtml +++ /dev/null @@ -1,49 +0,0 @@ -@model IEnumerable - -@{ - ViewData["Title"] = "Index"; -} -

Document people

-

- - Create New - -

- - - - - - - - - - @foreach (var item in Model) - { - - - - - - } - -
- @Html.DisplayNameFor(model => model.Name) - - @Html.DisplayNameFor(model => model.Person) -
- @Html.DisplayFor(modelItem => item.Name) - - - @Html.DisplayFor(modelItem => item.Person) - - - Details - - - Edit - - - Delete - -
\ No newline at end of file diff --git a/Marechai/Marechai.csproj b/Marechai/Marechai.csproj index 341f6ce4..f558951c 100644 --- a/Marechai/Marechai.csproj +++ b/Marechai/Marechai.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 3.0.99.1049 + 3.0.99.1052 Canary Islands Computer Museum Copyright © 2003-2020 Natalia Portillo Canary Islands Computer Museum Website @@ -46,6 +46,9 @@ true + + true + <_ContentIncludedByDefault Remove="Areas\Admin\Views\BrowserTests\Delete.cshtml" /> diff --git a/Marechai/Pages/Admin/DocumentCompanies.razor b/Marechai/Pages/Admin/DocumentCompanies.razor index bc38f863..1434334f 100644 --- a/Marechai/Pages/Admin/DocumentCompanies.razor +++ b/Marechai/Pages/Admin/DocumentCompanies.razor @@ -67,7 +67,7 @@ - item.Company + @item.Company diff --git a/Marechai/Pages/Admin/DocumentPeople.razor b/Marechai/Pages/Admin/DocumentPeople.razor new file mode 100644 index 00000000..990d1927 --- /dev/null +++ b/Marechai/Pages/Admin/DocumentPeople.razor @@ -0,0 +1,97 @@ +@{ + /****************************************************************************** +// MARECHAI: Master repository of computing history artifacts information +// ---------------------------------------------------------------------------- +// +// Filename : DocumentPeople.razor +// Author(s) : Natalia Portillo +// +// --[ Description ] ---------------------------------------------------------- +// +// List of document people +// +// --[ License ] -------------------------------------------------------------- +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// ---------------------------------------------------------------------------- +// Copyright © 2003-2020 Natalia Portillo +*******************************************************************************/ +} + +@page "/admin/document_people" +@inherits OwningComponentBase +@inject IStringLocalizer L +@attribute [Authorize(Roles = "UberAdmin, Admin")] +

@L["Document companies"]

+@if (_people is null) +{ +

@L["Loading..."]

+ + return; +} +

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

+ + + + + + + + + + @foreach (var item in _people) + { + + + + + + } + +
+ @L["Name"] + + @L["Linked person"] +
+ @item.Name + + + @item.Person + + + + @L["Details"] + + + @L["Edit"] + + + @L["Delete"] + +
+ +@code +{ + List _people; + + protected override async Task OnInitializedAsync() + { + _people = await Service.GetAsync(); + } +} \ No newline at end of file diff --git a/Marechai/Pages/Admin/Index.razor b/Marechai/Pages/Admin/Index.razor index 3fb06945..05a4bf14 100644 --- a/Marechai/Pages/Admin/Index.razor +++ b/Marechai/Pages/Admin/Index.razor @@ -48,4 +48,7 @@
  • @L["Document companies"]
  • +
  • + @L["Document people"] +
  • \ No newline at end of file diff --git a/Marechai/Resources/Services/AdminService.es.resx b/Marechai/Resources/Services/AdminService.es.resx index c73685d6..83b622fc 100644 --- a/Marechai/Resources/Services/AdminService.es.resx +++ b/Marechai/Resources/Services/AdminService.es.resx @@ -142,4 +142,8 @@ Compañías de documentos Document companies. + + Personas de documentos + Document people. + \ No newline at end of file diff --git a/Marechai/Resources/Services/DocumentPeopleService.es.resx b/Marechai/Resources/Services/DocumentPeopleService.es.resx new file mode 100644 index 00000000..21dd079b --- /dev/null +++ b/Marechai/Resources/Services/DocumentPeopleService.es.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + Personas de documentos + Document people + + + Cargando... + Message that appears while data is being loaded from database + + + Nombre + Name + + + Persona vinculada + Linked person + + + Crear nueva + Create new document company + + + Detalles + Details + + + Editar + Edit + + + Eliminar + Delete + + \ No newline at end of file diff --git a/Marechai/Services/DocumentPeopleService.cs b/Marechai/Services/DocumentPeopleService.cs new file mode 100644 index 00000000..eadfb562 --- /dev/null +++ b/Marechai/Services/DocumentPeopleService.cs @@ -0,0 +1,27 @@ +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 DocumentPeopleService + { + readonly MarechaiContext _context; + + public DocumentPeopleService(MarechaiContext context) => _context = context; + + public async Task> GetAsync() => await _context. + DocumentPeople.OrderBy(d => d.DisplayName). + ThenBy(d => d.Alias).ThenBy(d => d.Name). + ThenBy(d => d.Surname). + Select(d => new DocumentPersonViewModel + { + Id = d.Id, Name = d.FullName, + Person = d.Person.FullName, + PersonId = d.PersonId + }).ToListAsync(); + } +} \ No newline at end of file diff --git a/Marechai/Services/Register.cs b/Marechai/Services/Register.cs index 82db75c9..1ce2f514 100644 --- a/Marechai/Services/Register.cs +++ b/Marechai/Services/Register.cs @@ -49,6 +49,7 @@ namespace Marechai.Services services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/Marechai/Areas/Admin/Models/DocumentPersonViewModel.cs b/Marechai/ViewModels/DocumentPersonViewModel.cs similarity index 75% rename from Marechai/Areas/Admin/Models/DocumentPersonViewModel.cs rename to Marechai/ViewModels/DocumentPersonViewModel.cs index 1ee94d04..d20fc495 100644 --- a/Marechai/Areas/Admin/Models/DocumentPersonViewModel.cs +++ b/Marechai/ViewModels/DocumentPersonViewModel.cs @@ -1,11 +1,10 @@ using System.ComponentModel; -namespace Marechai.Areas.Admin.Models +namespace Marechai.ViewModels { public class DocumentPersonViewModel : BaseViewModel { public string Name { get; set; } - [DisplayName("Linked person")] public string Person { get; set; } public int? PersonId { get; set; } }