diff --git a/Marechai/Areas/Admin/Views/DocumentCompanies/Delete.cshtml b/Marechai/Areas/Admin/Views/DocumentCompanies/Delete.cshtml
deleted file mode 100644
index 34df1657..00000000
--- a/Marechai/Areas/Admin/Views/DocumentCompanies/Delete.cshtml
+++ /dev/null
@@ -1,33 +0,0 @@
-@model Marechai.ViewModels.DocumentCompanyViewModel
-
-@{
- ViewData["Title"] = "Delete";
-}
-
Delete
-Are you sure you want to delete this?
-
\ No newline at end of file
diff --git a/Marechai/Pages/Admin/DocumentCompanies.razor b/Marechai/Pages/Admin/DocumentCompanies.razor
index 87a0f00e..648bd1b4 100644
--- a/Marechai/Pages/Admin/DocumentCompanies.razor
+++ b/Marechai/Pages/Admin/DocumentCompanies.razor
@@ -77,21 +77,26 @@
@L["Edit"]
-
- @L["Delete"]
-
+
}
-@code
-{
- List _companies;
-
- protected override async Task OnInitializedAsync()
- {
- _companies = await Service.GetAsync();
- }
-}
\ No newline at end of file
+
+
+
+
+ @L["Delete company"]
+
+
+
+ @string.Format(@L["Are you sure you want to delete the company {0}?"], _currentCompany?.Name)
+
+
+
+
+
+
+
diff --git a/Marechai/Pages/Admin/DocumentCompanies.razor.cs b/Marechai/Pages/Admin/DocumentCompanies.razor.cs
new file mode 100644
index 00000000..3843dadf
--- /dev/null
+++ b/Marechai/Pages/Admin/DocumentCompanies.razor.cs
@@ -0,0 +1,53 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Blazorise;
+using Marechai.ViewModels;
+
+namespace Marechai.Pages.Admin
+{
+ public partial class DocumentCompanies
+ {
+ List _companies;
+
+ DocumentCompanyViewModel _currentCompany;
+ bool _deleteInProgress;
+ Modal _frmDelete;
+
+ protected override async Task OnInitializedAsync() => _companies = await Service.GetAsync();
+
+ void ShowModal(int itemId)
+ {
+ _currentCompany = _companies.FirstOrDefault(n => n.Id == itemId);
+ _frmDelete.Show();
+ }
+
+ void HideModal() => _frmDelete.Hide();
+
+ async void ConfirmDelete()
+ {
+ if(_currentCompany is null)
+ return;
+
+ _deleteInProgress = true;
+ _companies = null;
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ await Service.DeleteAsync(_currentCompany.Id);
+ _companies = 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) => _currentCompany = null;
+ }
+}
\ No newline at end of file
diff --git a/Marechai/Resources/Services/DocumentCompaniesService.es.resx b/Marechai/Resources/Services/DocumentCompaniesService.es.resx
index 5d3610ef..677411e6 100644
--- a/Marechai/Resources/Services/DocumentCompaniesService.es.resx
+++ b/Marechai/Resources/Services/DocumentCompaniesService.es.resx
@@ -150,4 +150,16 @@
Eliminar
Delete
+
+ Eliminar compañía
+ Delete company
+
+
+ ¿Está seguro de que desea borrar la compañía {0}?
+ {0} company name
+
+
+ Cancelar
+ Cancel
+
\ No newline at end of file
diff --git a/Marechai/Services/DocumentCompaniesService.cs b/Marechai/Services/DocumentCompaniesService.cs
index fd6d6e6d..4b7b9f04 100644
--- a/Marechai/Services/DocumentCompaniesService.cs
+++ b/Marechai/Services/DocumentCompaniesService.cs
@@ -21,5 +21,17 @@ namespace Marechai.Services
Company = d.Company.Name,
CompanyId = d.CompanyId
}).ToListAsync();
+
+ public async Task DeleteAsync(int id)
+ {
+ DocumentCompany item = await _context.DocumentCompanies.FindAsync(id);
+
+ if(item is null)
+ return;
+
+ _context.DocumentCompanies.Remove(item);
+
+ await _context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file