diff --git a/Marechai/Areas/Admin/Views/People/Delete.cshtml b/Marechai/Areas/Admin/Views/People/Delete.cshtml
deleted file mode 100644
index bc6a51fc..00000000
--- a/Marechai/Areas/Admin/Views/People/Delete.cshtml
+++ /dev/null
@@ -1,86 +0,0 @@
-@model Marechai.Database.Models.Person
-
-@{
- ViewData["Title"] = "Delete";
-}
-
Delete
-Are you sure you want to delete this?
-
-
Person
-
-
- -
- @Html.DisplayNameFor(model => model.Name)
-
- -
- @Html.DisplayFor(model => model.Name)
-
- -
- @Html.DisplayNameFor(model => model.Surname)
-
- -
- @Html.DisplayFor(model => model.Surname)
-
- -
- @Html.DisplayNameFor(model => model.Alias)
-
- -
- @Html.DisplayFor(model => model.Alias)
-
- -
- @Html.DisplayNameFor(model => model.DisplayName)
-
- -
- @Html.DisplayFor(model => model.DisplayName)
-
- -
- @Html.DisplayNameFor(model => model.CountryOfBirth)
-
- -
- @Html.DisplayFor(model => model.CountryOfBirth.Name)
-
- -
- @Html.DisplayNameFor(model => model.BirthDate)
-
- -
- @Html.DisplayFor(model => model.BirthDate)
-
- -
- @Html.DisplayNameFor(model => model.DeathDate)
-
- -
- @Html.DisplayFor(model => model.DeathDate)
-
- -
- @Html.DisplayNameFor(model => model.Webpage)
-
- -
- @Html.DisplayFor(model => model.Webpage)
-
- -
- @Html.DisplayNameFor(model => model.Twitter)
-
- -
- @if (Model.Twitter != null)
- {
- @Html.DisplayFor(model => model.Twitter)
- }
-
- -
- @Html.DisplayNameFor(model => model.Facebook)
-
- -
- @if (Model.Facebook != null)
- {
- @Html.DisplayFor(model => model.Facebook)
- }
-
-
-
-
\ No newline at end of file
diff --git a/Marechai/Pages/Admin/People.razor b/Marechai/Pages/Admin/People.razor
index 7f673319..c79eb887 100644
--- a/Marechai/Pages/Admin/People.razor
+++ b/Marechai/Pages/Admin/People.razor
@@ -111,21 +111,26 @@
@L["Edit"]
-
- @L["Delete"]
-
+
}
-@code
-{
- List _people;
-
- protected override async Task OnInitializedAsync()
- {
- _people = await Service.GetAsync();
- }
-}
\ No newline at end of file
+
+
+
+
+ @L["Delete person"]
+
+
+
+ @string.Format(@L["Are you sure you want to delete {0}?"], _person?.FullName)
+
+
+
+
+
+
+
diff --git a/Marechai/Pages/Admin/People.razor.cs b/Marechai/Pages/Admin/People.razor.cs
new file mode 100644
index 00000000..bc39137a
--- /dev/null
+++ b/Marechai/Pages/Admin/People.razor.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Blazorise;
+using Marechai.ViewModels;
+
+namespace Marechai.Pages.Admin
+{
+ public partial class People
+ {
+ bool _deleteInProgress;
+ Modal _frmDelete;
+ List _people;
+ PersonViewModel _person;
+
+ void ShowModal(int itemId)
+ {
+ _person = _people.FirstOrDefault(n => n.Id == itemId);
+ _frmDelete.Show();
+ }
+
+ void HideModal() => _frmDelete.Hide();
+
+ async void ConfirmDelete()
+ {
+ if(_person is null)
+ return;
+
+ _deleteInProgress = true;
+ _people = null;
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ await Service.DeleteAsync(_person.Id);
+ _people = await Service.GetAsync();
+
+ _deleteInProgress = false;
+ _frmDelete.Hide();
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ // Tell we finished loading
+ StateHasChanged();
+ }
+
+ void ModalClosing(ModalClosingEventArgs obj) => _person = null;
+
+ protected override async Task OnInitializedAsync() => _people = await Service.GetAsync();
+ }
+}
\ No newline at end of file
diff --git a/Marechai/Resources/Services/PeopleService.es.resx b/Marechai/Resources/Services/PeopleService.es.resx
index 35a7c312..0bcc03e5 100644
--- a/Marechai/Resources/Services/PeopleService.es.resx
+++ b/Marechai/Resources/Services/PeopleService.es.resx
@@ -170,4 +170,16 @@
Eliminar
Delete
+
+ Eliminar persona
+ Delete person
+
+
+ ¿Está seguro de que desea borrar a {0}?
+ {0} person name
+
+
+ Cancelar
+ Cancel
+
\ No newline at end of file
diff --git a/Marechai/Services/PeopleService.cs b/Marechai/Services/PeopleService.cs
index def993b2..a4a52ffe 100644
--- a/Marechai/Services/PeopleService.cs
+++ b/Marechai/Services/PeopleService.cs
@@ -22,5 +22,17 @@ namespace Marechai.Services
Twitter = p.Twitter, Facebook = p.Facebook, Photo = p.Photo, Alias = p.Alias,
DisplayName = p.DisplayName
}).ToListAsync();
+
+ public async Task DeleteAsync(int id)
+ {
+ Person item = await _context.People.FindAsync(id);
+
+ if(item is null)
+ return;
+
+ _context.People.Remove(item);
+
+ await _context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file