public async Task <IActionResult> Delete(Guid?id) { var validateToken = await ValidatedToken(_configuration, _getHelper, "contacto"); if (validateToken != null) { return(validateToken); } if (!await ValidateModulePermissions(_getHelper, moduloId, eTipoPermiso.PermisoEscritura)) { return(RedirectToAction(nameof(Index))); } if (id == null) { TempData["toast"] = "Identificador incorrecto."; return(RedirectToAction(nameof(Index))); } var cliente = await _getHelper.GetClienteByIdAsync((Guid)id); if (cliente == null) { TempData["toast"] = "Cliente inexistente (identificador incorrecto)."; return(RedirectToAction(nameof(Index))); } if (cliente.ClienteContactos.Count > 0) { TempData["toast"] = $"El cliente no se puede eliminar, porque tiene {cliente.ClienteContactos.Count} contacto(s) asignado(s)."; ModelState.AddModelError(string.Empty, $"El cliente no se puede eliminar, porque tiene {cliente.ClienteContactos.Count} contacto(s) asignado(s)."); return(RedirectToAction(nameof(Index))); } try { _context.Clientes.Remove(cliente); await _context.SaveChangesAsync(); TempData["toast"] = "Los datos del cliente fueron eliminados correctamente."; await BitacoraAsync("Baja", cliente); } catch (Exception ex) { string excepcion = ex.InnerException != null?ex.InnerException.Message.ToString() : ex.ToString(); TempData["toast"] = "[Error] Los datos del cliente no fueron eliminados."; await BitacoraAsync("Baja", cliente, excepcion); } return(RedirectToAction(nameof(Index))); }