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) -
-
-
- - - - Back to List - -
-
\ 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