Example #1
0
        //[HttpPost]
        public ActionResult EjecutarAccionUsuarioSENER(CatUsuarios UsuarioPorEditar, string Accion, int IdUsuarioPorEditar, bool IdEstatusUsuario)
        {
            CatUsuarios      Usuario       = (CatUsuarios)Session["Usuario"];
            CatEmpresas      Empresa       = new CatEmpresas();
            MetodosGenerales MetodoGeneral = new MetodosGenerales();

            try
            {
                if (Usuario == null || Usuario.U_IdTipoUsuario != 4)
                {
                    TempData["notice"] = "La sesión ha expirado.";
                    return(RedirectToAction("Logout", "Home"));
                }
                LogicaEmpresas LogicaEmpresa = new LogicaEmpresas();
                LogicaUsuarios LogicaUsuario = new LogicaUsuarios();
                Empresa = LogicaEmpresa.L_DetallesEmpresa(Usuario.U_IdEmpresa);

                switch (Accion)
                {
                case "Insertar":

                    CatUsuarios UsuarioExistente = LogicaUsuario.L_DetallesUsuarioPorNombreUnicamente(UsuarioPorEditar.U_Nombre);

                    if (UsuarioExistente.U_IdUsuario != null && UsuarioExistente.U_IdUsuario > 0)
                    {
                        TempData["notice"]    = "Ya existe una usuario con el mismo nombre, por favor elige otro.";
                        Session["TipoAlerta"] = "Error";
                        CargarListasDesplegables(null, null);
                        return(View("InsertarUsuarioSENER", UsuarioPorEditar));
                    }
                    else
                    {
                        if (UsuarioPorEditar.U_Password != UsuarioPorEditar.U_ConfirmarPassword)
                        {
                            TempData["notice"]    = "La contraseñas no coinciden.";
                            Session["TipoAlerta"] = "Error";
                            CargarListasDesplegables(null, null);
                            return(View("InsertarUsuarioSENER", UsuarioPorEditar));
                        }
                        else
                        {
                            UsuarioPorEditar.U_Activo = true;
                            if (LogicaUsuario.L_InsertarUsuarioSENER(UsuarioPorEditar, Usuario.U_IdEmpresa))
                            {
                                TempData["notice"]    = "El usuario ha sido creado.";
                                Session["TipoAlerta"] = "Correcto";
                                return(RedirectToAction("GestionUsuariosSENER", "Administrador"));
                            }
                            else
                            {
                                TempData["notice"]    = "Error de sistema.";
                                Session["TipoAlerta"] = "Error";
                                CargarListasDesplegables(null, null);
                                return(View("InsertarUsuarioSENER", UsuarioPorEditar));
                            }
                        }
                    }

                case "CambiarEstatus":
                    UsuarioPorEditar.U_IdUsuario = IdUsuarioPorEditar;
                    UsuarioPorEditar.U_Activo    = !IdEstatusUsuario;

                    if (LogicaUsuario.L_ActualizarEstatusUsuarioSENER(UsuarioPorEditar.U_IdUsuario, UsuarioPorEditar.U_Activo))
                    {
                        if (UsuarioPorEditar.U_IdUsuario == Usuario.U_IdUsuario)
                        {
                            return(RedirectToAction("GestionUsuariosSENER", "Administrador"));
                        }
                        else
                        {
                            TempData["notice"]    = "Se realizó el cambio de estatus.";
                            Session["TipoAlerta"] = "Correcto";
                            return(RedirectToAction("GestionUsuariosSENER", "Administrador"));
                        }
                    }
                    else
                    {
                        TempData["notice"]    = "Operación no concluida.";
                        Session["TipoAlerta"] = "Error";
                        return(RedirectToAction("Eliminar", new { IdUsuario = UsuarioPorEditar.U_IdUsuario }));
                    }



                default:
                    return(RedirectToAction("GestionUsuariosSENER", "Administrador"));
                }
            }
            catch (Exception ex)
            {
                TempData["notice"]    = ConfigurationManager.AppSettings["MensajeError"].ToString();
                Session["TipoAlerta"] = "Error";
                MetodoGeneral.RegistroDeError(ex.Message, "Usuarios: EjecutarAccionUsuario(" + Accion + ")");
                return(RedirectToAction("Actualizar", "Administrador"));
            }
        }