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 colaborador = await _getHelper.GetColaboradorByIdAsync((Guid)id);

            if (colaborador == null)
            {
                TempData["toast"] = "Colaborador inexistente (identificador incorrecto).";
                return(RedirectToAction(nameof(Index)));
            }

            try
            {
                _context.Colaboradores.Remove(colaborador);
                await _context.SaveChangesAsync();

                TempData["toast"] = "Los datos del colaborador fueron eliminados correctamente.";
                await BitacoraAsync("Baja", colaborador);
            }
            catch (Exception ex)
            {
                string excepcion = ex.InnerException != null?ex.InnerException.Message.ToString() : ex.ToString();

                TempData["toast"] = "Los datos del colaborador no pueden ser eliminados por integridad de la información.";
                await BitacoraAsync("Baja", colaborador, excepcion);
            }

            return(RedirectToAction(nameof(Index)));
        }