public ActionResult EjecutarAccionUsuario(CatUsuarios UsuarioPorEditar, string Accion, IEnumerable <HttpPostedFileBase> files) { string RFCAsociado = Session["RFCAsociado"].ToString(); string Validacion = ""; MetodosGenerales MetodoGeneral = new MetodosGenerales(); try { CatUsuarios Usuario = (CatUsuarios)Session["Usuario"]; if (Usuario == null || Usuario.U_IdTipoUsuario != 2) { TempData["notice"] = "La sesión ha expirado."; return(RedirectToAction("Logout", "Home")); } switch (Accion) { case "Insertar": Validacion = MetodoGeneral.ValidarFIEL(files, UsuarioPorEditar.U_ClavePrivada, RFCAsociado); if (Validacion == "Validación exitosa") { LogicaUsuarios LogicaUsuario = new LogicaUsuarios(); CatUsuarios UsuarioExistente = LogicaUsuario.L_DetallesUsuarioPorNombreUnicamente(UsuarioPorEditar.U_Nombre); if (UsuarioExistente.U_IdUsuario != null && UsuarioExistente.U_IdUsuario > 0) { TempData["notice"] = "Ya existe una cuenta de usuario con el mismo nombre, por favor elige otro."; Session["TipoAlerta"] = "Error"; return(View("Insertar", UsuarioPorEditar)); } else { if (UsuarioPorEditar.U_Password != UsuarioPorEditar.U_ConfirmarPassword) { TempData["notice"] = "Las contraseñas no coinciden."; Session["TipoAlerta"] = "Error"; return(View("Insertar", UsuarioPorEditar)); } else { int IdRepresentanteLegal = Usuario.U_IdRepresentanteAsociado; UsuarioPorEditar.U_Activo = true; UsuarioPorEditar.U_IdTipoUsuario = 1; if (LogicaUsuario.L_InsertarUsuario(UsuarioPorEditar, Usuario.U_IdEmpresa, IdRepresentanteLegal)) { TempData["notice"] = "El usuario operativo ha sido creado."; Session["TipoAlerta"] = "Correcto"; return(RedirectToAction("Index")); } else { TempData["notice"] = "No se pudo crear el Representante legal, por favor revise la información"; Session["TipoAlerta"] = "Error"; return(RedirectToAction("Insertar", UsuarioPorEditar)); } } } } else { TempData["notice"] = Validacion; Session["TipoAlerta"] = "Error"; return(RedirectToAction("Insertar", UsuarioPorEditar)); } case "Eliminar": Validacion = MetodoGeneral.ValidarFIEL(files, UsuarioPorEditar.U_ClavePrivada, RFCAsociado); if (Validacion == "Validación exitosa") { if (LogicaUsuario.L_EliminarUsuario(UsuarioPorEditar.U_IdUsuario)) { if (UsuarioPorEditar.U_IdUsuario == Usuario.U_IdUsuario) { return(RedirectToAction("Index", "Home")); } else { TempData["notice"] = "Se ha eliminado el usuario."; Session["TipoAlerta"] = "Correcto"; return(RedirectToAction("Index", "Usuarios")); } } else { TempData["notice"] = "Operación no concluida, favor de comunicarse con un administrador de SENER."; Session["TipoAlerta"] = "Error"; return(RedirectToAction("Eliminar", new { IdUsuario = UsuarioPorEditar.U_IdUsuario })); } } else { TempData["notice"] = Validacion; Session["TipoAlerta"] = "Error"; return(RedirectToAction("Eliminar", new { IdUsuario = UsuarioPorEditar.U_IdUsuario })); } default: return(RedirectToAction("Index")); } } catch (Exception ex) { TempData["notice"] = ConfigurationManager.AppSettings["MensajeError"].ToString(); Session["TipoAlerta"] = "Error"; MetodoGeneral.RegistroDeError(ex.Message, "Usuarios: EjecutarAccionUsuario(" + Accion + ")"); return(RedirectToAction("Index")); } }