public ActionResult Edit(PositionQuestionViewModel Pq)
        {
            userType          = Convert.ToInt32(Request.RequestContext.HttpContext.Session["TipoUsuario"]);
            ViewBag.Cargos    = new SelectList(Tools.LeerCargos(userType), "Codigo_Cargo", "Nombre_Cargo", "");
            ViewBag.Section   = new SelectList(Tools.LeerSecciones(), "Codigo_Seccion", "Nombre_Seccion", "");
            ViewBag.State     = new SelectList(Tools.LeerEstados(), "IdState", "StateDescription", "");
            ViewBag.RQuestion = new SelectList(Tools.LeerPreguntasAleatorias(Pq.Codigo_seccion, Pq.Numero_Pregunta), "Numero_Pregunta", "Texto_Pregunta", "");

            try
            {
                if (ModelState.IsValid)
                {
                    #region Graba Datos
                    using BD_EvaluacionEntities Db = new BD_EvaluacionEntities();
                    Preguntas_Cargos oPq = Db.Preguntas_Cargos.Where(i => i.Codigo_Cargo == Pq.Codigo_Cargo && i.Cod_Cargo_Evaluado == Pq.Cod_Cargo_Evaluado && i.Codigo_seccion == Pq.Codigo_seccion && i.Numero_Pregunta == Pq.Numero_Pregunta).SingleOrDefault();
                    if (oPq != null)
                    {
                        oPq.Numero_Pregunta = Pq.Numero_Pregunta;
                        oPq.IdState         = Pq.IdState;
                        Db.Entry(oPq).State = System.Data.Entity.EntityState.Modified;
                        Db.SaveChanges();
                        mensaje = "Ok";
                    }
                    else
                    {
                        mensaje = "El registro no se modificó";
                    }
                    #endregion
                }
                else
                {
                    #region Errores de Modelo
                    string errors = string.Empty;
                    foreach (var item in ModelState.Values)
                    {
                        if (item.Errors.Count > 0)
                        {
                            mensaje += string.Format("{0} \n", item.Errors[0].ErrorMessage);
                        }
                    }
                    mensaje += " Contacte al Administrador";
                    #endregion
                }
                return(View(new { mensaje }));
            }
            catch (Exception ex)
            {
                mensaje = ex.InnerException.InnerException.Message + "Contactar al administrador";
                return(RedirectToAction("Edit", "PositionQuestion", new { codCargo = Pq.Codigo_Cargo, codCargoEval = Pq.Cod_Cargo_Evaluado, codSection = Pq.Codigo_seccion, questionNo = Pq.Numero_Pregunta, mensaje }));
            }
        }
        public ActionResult Delete(string codCargo, string codCargoEval, string codSection, int questionNo, string mensaje)
        {
            userType          = Convert.ToInt32(Request.RequestContext.HttpContext.Session["TipoUsuario"]);
            ViewBag.Cargos    = new SelectList(Tools.LeerCargos(userType), "Codigo_Cargo", "Nombre_Cargo", "");
            ViewBag.Section   = new SelectList(Tools.LeerSecciones(), "Codigo_seccion", "Nombre_Seccion", "");
            ViewBag.State     = new SelectList(Tools.LeerEstados(), "IdState", "StateDescription", "");
            ViewBag.RQuestion = new SelectList(Tools.LeerPreguntasAleatorias(codSection, questionNo), "Numero_Pregunta", "Texto_Pregunta", "");

            ViewBag.Status = false;
            if (mensaje != null && mensaje != "")
            {
                if (mensaje == "Ok")
                {
                    ViewBag.Message = "Pregunta por Cargo Eliminada exitosamente";
                    ViewBag.Status  = true;
                }
                else
                {
                    ViewBag.Message = mensaje;
                    ViewBag.Status  = false;
                }
            }
            try
            {
                #region Muestra Datos
                var oPosQ = new PositionQuestionViewModel();
                using (BD_EvaluacionEntities Db = new BD_EvaluacionEntities())
                {
                    oPosQ = (from Pq in Db.Preguntas_Cargos
                             where Pq.Codigo_Cargo == codCargo && Pq.Cod_Cargo_Evaluado == codCargoEval && Pq.Codigo_seccion == codSection && Pq.Numero_Pregunta == questionNo
                             select new PositionQuestionViewModel
                    {
                        Codigo_Cargo = Pq.Codigo_Cargo,
                        Cod_Cargo_Evaluado = Pq.Cod_Cargo_Evaluado,
                        Codigo_seccion = Pq.Codigo_seccion,
                        Numero_Pregunta = Pq.Numero_Pregunta,
                        IdState = Pq.IdState
                    }).FirstOrDefault();
                }
                return(View(oPosQ));

                #endregion
            }
            catch (Exception ex)
            {
                mensaje = ex.InnerException.InnerException.Message + "Contactar al administrador";
                return(View(new { mensaje }));
                //return RedirectToAction("~/Home/Error/UnAuthorizedOperation?Error = " + mensaje);
            }
        }
        public ActionResult Create(string codCargo, string codCargoEval, string codSection, string mensaje)
        {
            userType          = Convert.ToInt32(Request.RequestContext.HttpContext.Session["TipoUsuario"]);
            ViewBag.Cargos    = new SelectList(Tools.LeerCargos(userType), "Codigo_Cargo", "Nombre_Cargo", "");
            ViewBag.Section   = new SelectList(Tools.LeerSecciones(), "Codigo_Seccion", "Nombre_Seccion", "");
            ViewBag.State     = new SelectList(Tools.LeerEstados(), "IdState", "StateDescription", 1);
            ViewBag.RQuestion = new SelectList(Tools.LeerPreguntasAleatorias("", 0), "Numero_Pregunta", "Texto_Pregunta", "");

            ViewBag.Status = true;
            if (mensaje != null && mensaje != "")
            {
                if (mensaje == "Ok")
                {
                    ViewBag.Message = "Pregunta por Cargo Creada exitosamente";
                    ViewBag.Status  = true;
                }
                else if (mensaje != "Ok")
                {
                    ViewBag.Message = mensaje;
                    ViewBag.Status  = false;
                }
            }
            #region Muestra Datos
            var oPQ = new PositionQuestionViewModel();
            using (BD_EvaluacionEntities Db = new BD_EvaluacionEntities())
            {
                oPQ = (from pcar in Db.Preguntas_Cargos

                       where pcar.Codigo_Cargo == codCargo && pcar.Cod_Cargo_Evaluado == codCargoEval && pcar.Codigo_seccion == codSection
                       select new PositionQuestionViewModel
                {
                    Codigo_Cargo = pcar.Codigo_Cargo,
                    Cod_Cargo_Evaluado = pcar.Cod_Cargo_Evaluado,
                    Codigo_seccion = pcar.Codigo_seccion,
                    Numero_Pregunta = pcar.Numero_Pregunta,
                    IdState = pcar.IdState
                }).SingleOrDefault();
            }
            return(View(oPQ));

            #endregion
        }
        public ActionResult Details(string codCargo, string codCargoEval, string codSection, int questionNo)
        {
            userType          = Convert.ToInt32(Request.RequestContext.HttpContext.Session["TipoUsuario"]);
            ViewBag.Cargos    = new SelectList(Tools.LeerCargos(userType), "Codigo_Cargo", "Nombre_Cargo", "");
            ViewBag.Section   = new SelectList(Tools.LeerSecciones(), "Codigo_Seccion", "Nombre_Seccion", "");
            ViewBag.State     = new SelectList(Tools.LeerEstados(), "IdState", "StateDescription", "");
            ViewBag.RQuestion = new SelectList(Tools.LeerPreguntasAleatorias("", 0), "Numero_Pregunta", "Texto_Pregunta", "");

            PositionQuestionViewModel oPQ = new PositionQuestionViewModel();

            using (BD_EvaluacionEntities Db = new BD_EvaluacionEntities())
            {
                oPQ = (from Pq in Db.Preguntas_Cargos
                       where Pq.Codigo_Cargo == codCargo && Pq.Cod_Cargo_Evaluado == codCargoEval && Pq.Codigo_seccion == codSection.Trim() && Pq.Numero_Pregunta == questionNo
                       select new PositionQuestionViewModel
                {
                    Codigo_Cargo = Pq.Codigo_Cargo,
                    Cod_Cargo_Evaluado = Pq.Cod_Cargo_Evaluado,
                    Codigo_seccion = Pq.Codigo_seccion,
                    Numero_Pregunta = Pq.Numero_Pregunta
                }).FirstOrDefault();
            }
            return(View(oPQ));
        }