diff --git a/Marechai/Areas/Admin/Views/Screens/Delete.cshtml b/Marechai/Areas/Admin/Views/Screens/Delete.cshtml
deleted file mode 100644
index 9d135ff7..00000000
--- a/Marechai/Areas/Admin/Views/Screens/Delete.cshtml
+++ /dev/null
@@ -1,50 +0,0 @@
-@model Marechai.Database.Models.Screen
-
-@{
- ViewData["Title"] = "Delete";
-}
-
Delete
-Are you sure you want to delete this?
-
-
Screen
-
-
- -
- @Html.DisplayNameFor(model => model.Diagonal)
-
- -
- @Html.DisplayFor(model => model.Diagonal)
-
- -
- @Html.DisplayNameFor(model => model.Size)
-
- -
- @Html.DisplayFor(model => model.Size)
-
- -
- @Html.DisplayNameFor(model => model.NativeResolution)
-
- -
- @Model.NativeResolution.ToString()
-
- -
- @Html.DisplayNameFor(model => model.EffectiveColors)
-
- -
- @Html.DisplayFor(model => model.EffectiveColors)
-
- -
- @Html.DisplayNameFor(model => model.Type)
-
- -
- @Html.DisplayFor(model => model.Type)
-
-
-
-
\ No newline at end of file
diff --git a/Marechai/Pages/Admin/Screens.razor b/Marechai/Pages/Admin/Screens.razor
index 81b604cf..08519917 100644
--- a/Marechai/Pages/Admin/Screens.razor
+++ b/Marechai/Pages/Admin/Screens.razor
@@ -88,21 +88,26 @@
@L["Edit"]
-
- @L["Delete"]
-
+
}
-@code
-{
- List _screens;
-
- protected override void OnInitialized()
- {
- _screens = Service.Get();
- }
-}
\ No newline at end of file
+
+
+
+
+ @L["Delete screen"]
+
+
+
+ @string.Format(@L["Are you sure you want to delete screen of {0}\" size with a resolution of {1} and type {2}?"], _screen?.Diagonal, _screen?.NativeResolution, _screen?.Type)
+
+
+
+
+
+
+
diff --git a/Marechai/Pages/Admin/Screens.razor.cs b/Marechai/Pages/Admin/Screens.razor.cs
new file mode 100644
index 00000000..0e653f0f
--- /dev/null
+++ b/Marechai/Pages/Admin/Screens.razor.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Blazorise;
+using Marechai.Database.Models;
+
+namespace Marechai.Pages.Admin
+{
+ public partial class Screens
+ {
+ bool _deleteInProgress;
+ Modal _frmDelete;
+ Screen _screen;
+ List _screens;
+
+ void ShowModal(int itemId)
+ {
+ _screen = _screens.FirstOrDefault(n => n.Id == itemId);
+ _frmDelete.Show();
+ }
+
+ void HideModal() => _frmDelete.Hide();
+
+ async void ConfirmDelete()
+ {
+ if(_screen is null)
+ return;
+
+ _deleteInProgress = true;
+ _screens = null;
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ await Service.DeleteAsync(_screen.Id);
+ _screens = Service.Get();
+
+ _deleteInProgress = false;
+ _frmDelete.Hide();
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ // Tell we finished loading
+ StateHasChanged();
+ }
+
+ void ModalClosing(ModalClosingEventArgs obj) => _screen = null;
+
+ protected override async Task OnInitializedAsync() => _screens = await Service.GetAsync();
+ }
+}
\ No newline at end of file
diff --git a/Marechai/Resources/Services/ScreensService.es.resx b/Marechai/Resources/Services/ScreensService.es.resx
index 476ed909..c1ef71f2 100644
--- a/Marechai/Resources/Services/ScreensService.es.resx
+++ b/Marechai/Resources/Services/ScreensService.es.resx
@@ -162,4 +162,16 @@
Eliminar
Delete
+
+ Eliminar pantalla
+ Delete screen
+
+
+ ¿Está seguro de que desea borrar la pantalla de {0}" de tamaño con una resolución de {1} y tipo {2}?
+ {0} size in inches, {1} resolution, {2} type
+
+
+ Cancelar
+ Cancel
+
\ No newline at end of file
diff --git a/Marechai/Services/ScreensService.cs b/Marechai/Services/ScreensService.cs
index b1af614c..378703e0 100644
--- a/Marechai/Services/ScreensService.cs
+++ b/Marechai/Services/ScreensService.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
using Marechai.Database.Models;
namespace Marechai.Services
@@ -13,5 +14,17 @@ namespace Marechai.Services
public List Get() => _context.Screens.AsEnumerable().OrderBy(s => s.Diagonal).
ThenBy(s => s.EffectiveColors).ThenBy(s => s.NativeResolution.ToString()).
ThenBy(s => s.Type).ThenBy(s => s.Size).ToList();
+
+ public async Task DeleteAsync(int id)
+ {
+ Screen item = await _context.Screens.FindAsync(id);
+
+ if(item is null)
+ return;
+
+ _context.Screens.Remove(item);
+
+ await _context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file