Exemple #1
0
        internal void Update(PreguntaExamen parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            OidPregunta = parent.Oid;

            try
            {
                ValidationRules.CheckRules();

                if (!IsValid)
                {
                    throw new iQValidationException(moleQule.Library.Resources.Messages.GENERIC_VALIDATION_ERROR);
                }

                RespuestaExamenRecord obj = parent.Session().Get <RespuestaExamenRecord>(Oid);
                obj.CopyValues(this.Base.Record);
                parent.Session().Update(obj);
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            MarkOld();
        }
Exemple #2
0
        internal void DeleteSelf(PreguntaExamen parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            // if we're new then don't update the database
            if (this.IsNew)
            {
                return;
            }

            try
            {
                parent.Session().Delete(parent.Session().Get <RespuestaExamenRecord>(Oid));
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            MarkNew();
        }
Exemple #3
0
        internal void Update(PreguntaExamen parent)
        {
            this.RaiseListChangedEvents = false;

            // update (thus deleting) any deleted child objects
            foreach (RespuestaExamen obj in DeletedList)
            {
                obj.DeleteSelf(parent);
            }

            // now that they are deleted, remove them from memory too
            DeletedList.Clear();

            // AddItem/update any current child objects
            foreach (RespuestaExamen obj in this)
            {
                if (obj.IsNew)
                {
                    obj.Insert(parent);
                }
                else
                {
                    obj.Update(parent);
                }
            }

            this.RaiseListChangedEvents = true;
        }
Exemple #4
0
        private void Fetch(Examen source)
        {
            try
            {
                SessionCode = source.SessionCode;

                _base.CopyValues(source);

                CriteriaEx criteria = Pregunta_Examen.GetCriteria(Session());
                criteria.AddEq("OidExamen", this.Oid);
                _preguntas = Pregunta_Examens.GetChildList(criteria.List <Pregunta_Examen>());

                criteria = PreguntaExamen.GetCriteria(Session());
                criteria.AddEq("OidExamen", this.Oid);
                _preguntaexamens = PreguntaExamens.GetChildList(criteria.List <PreguntaExamen>());

                criteria = Alumno_Examen.GetCriteria(Session());
                criteria.AddEq("OidExamen", this.Oid);
                _alumnos = Alumno_Examens.GetChildList(criteria.List <Alumno_Examen>());

                criteria = ExamenPromocion.GetCriteria(Session());
                criteria.AddEq("OidExamen", this.Oid);
                _promociones = ExamenPromociones.GetChildList(criteria.List <ExamenPromocion>());
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            MarkOld();
        }
Exemple #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            PreguntaExamen preguntaExamen = db.PreguntaExamen.Find(id);

            db.PreguntaExamen.Remove(preguntaExamen);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #6
0
        //internal void Insert(Modulo parent)
        //{
        //    // if we're not dirty then don't update the database
        //    if (!this.IsDirty) return;

        //    //Debe obtener la sesion del padre pq el objeto es padre a su vez
        //    SessionCode = parent.SessionCode;

        //    _oid_modulo = parent.Oid;

        //    try
        //    {
        //        ValidationRules.CheckRules();

        //        if (!IsValid)
        //            throw new iQValidationException(moleQule.Library.Resources.Messages.GENERIC_VALIDATION_ERROR);

        //        parent.Session().Save(this);

        //        _preguntas.Update(this);
        //        _preguntaexamens.Update(this);
        //        _alumnos.Update(this);
        //    }
        //    catch (Exception ex)
        //    {
        //        iQExceptionHandler.TreatException(ex);
        //    }

        //    MarkOld();
        //}

        //internal void Update(Modulo parent)
        //{
        //    // if we're not dirty then don't update the database
        //    if (!this.IsDirty) return;

        //    //Debe obtener la sesion del padre pq el objeto es padre a su vez
        //    SessionCode = parent.SessionCode;

        //    _oid_modulo = parent.Oid;

        //    try
        //    {
        //        ValidationRules.CheckRules();

        //        if (!IsValid)
        //            throw new iQValidationException(moleQule.Library.Resources.Messages.GENERIC_VALIDATION_ERROR);

        //        Examen obj = parent.Session().Get<Examen>(Oid);
        //        obj.CopyValues(this);
        //        parent.Session().Update(obj);

        //        _preguntas.Update(this);
        //        _preguntaexamens.Update(this);
        //        _alumnos.Update(this);
        //    }
        //    catch (Exception ex)
        //    {
        //        iQExceptionHandler.TreatException(ex);
        //    }

        //    MarkOld();
        //}


        //internal void DeleteSelf(Modulo parent)
        //{
        //    // if we're not dirty then don't update the database
        //    if (!this.IsDirty) return;

        //    // if we're new then don't update the database
        //    if (this.IsNew) return;

        //    try
        //    {
        //        SessionCode = parent.SessionCode;
        //        Session().Delete(Session().Get<Examen>(Oid));
        //    }
        //    catch (Exception ex)
        //    {
        //        iQExceptionHandler.TreatException(ex);
        //    }

        //    MarkNew();
        //}

        #endregion

        #region Root Data Access

        // called to retrieve data from the database
        private void DataPortal_Fetch(CriteriaEx criteria)
        {
            try
            {
                SessionCode = criteria.SessionCode;

                Childs = criteria.Childs;

                if (nHMng.UseDirectSQL)
                {
                    Examen.DoLOCK(Session());
                    IDataReader reader = nHManager.Instance.SQLNativeSelect(criteria.Query, Session());

                    if (reader.Read())
                    {
                        _base.CopyValues(reader);
                    }

                    if (Childs)
                    {
                        Pregunta_Examen.DoLOCK(Session());

                        string query = Pregunta_Examens.SELECT_BY_EXAMEN(this.Oid);
                        reader     = nHManager.Instance.SQLNativeSelect(query, Session());
                        _preguntas = Pregunta_Examens.GetChildList(reader);

                        PreguntaExamen.DoLOCK(Session());

                        query            = PreguntaExamens.SELECT_BY_EXAMEN(this.Oid);
                        reader           = nHManager.Instance.SQLNativeSelect(query, Session());
                        _preguntaexamens = PreguntaExamens.GetChildList(criteria.SessionCode, reader);

                        Alumno_Examen.DoLOCK(Session());

                        query    = Alumno_Examens.SELECT(GetInfo(false));
                        reader   = nHManager.Instance.SQLNativeSelect(query, Session());
                        _alumnos = Alumno_Examens.GetChildList(criteria.SessionCode, reader);

                        ExamenPromocion.DoLOCK(Session());

                        query        = ExamenPromociones.SELECT(this);
                        reader       = nHManager.Instance.SQLNativeSelect(query, Session());
                        _promociones = ExamenPromociones.GetChildList(criteria.SessionCode, reader);
                    }
                }
            }
            catch (Exception ex)
            {
                if (Transaction() != null)
                {
                    Transaction().Rollback();
                }
                iQExceptionHandler.TreatException(ex);
            }
        }
Exemple #7
0
        protected void SetPreguntaAnterior()
        {
            int index = Lista.IndexOf(_pregunta);

            if (index > 0)
            {
                _pregunta = Lista.GetItem(Lista[index - 1].Oid);
                RefreshMainData();
            }
            SetDependentControlSource(Modulo_CB.Name);
        }
Exemple #8
0
        protected void SetPreguntaSiguiente()
        {
            int index = Lista.IndexOf(_pregunta);

            if (index < Lista.Count - 1)
            {
                _pregunta = Lista.GetItem(Lista[index + 1].Oid);
                RefreshMainData();
            }
            SetDependentControlSource(Modulo_CB.Name);
        }
Exemple #9
0
 public ActionResult Edit([Bind(Include = "ID,ExamenID,PreguntaID")] PreguntaExamen preguntaExamen)
 {
     if (ModelState.IsValid)
     {
         db.Entry(preguntaExamen).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ExamenID   = new SelectList(db.Examen, "ID", "Nombre", preguntaExamen.ExamenID);
     ViewBag.PreguntaID = new SelectList(db.Preguntas, "ID", "Nombre", preguntaExamen.PreguntaID);
     return(View(preguntaExamen));
 }
Exemple #10
0
        public static RespuestaExamen NewChild(PreguntaExamen parent)
        {
            if (!CanAddObject())
            {
                throw new System.Security.SecurityException(
                          moleQule.Library.Resources.Messages.USER_NOT_ALLOWED);
            }

            RespuestaExamen obj = new RespuestaExamen();

            obj.OidPregunta = parent.Oid;
            return(obj);
        }
        //  private PreguntaExamenList() { }

        /// <summary>
        /// Retrieve the complete list from db
        /// </summary>
        /// <returns>PreguntaExamenList</returns>
        public static PreguntaExamenList GetList(bool childs)
        {
            CriteriaEx criteria = PreguntaExamen.GetCriteria(PreguntaExamen.OpenSession());

            criteria.Childs = childs;
            criteria.Query  = PreguntaExamenList.SELECT();

            PreguntaExamenList list = DataPortal.Fetch <PreguntaExamenList>(criteria);

            CloseSession(criteria.SessionCode);

            return(list);
        }
Exemple #12
0
        protected override void EmitirAction()
        {
            _entity.PreguntaExamens = PreguntaExamens.NewChildList();

            if (Entity.FechaExamen.Date.Equals(DateTime.MaxValue.Date))
            {
                MessageBox.Show("No se puede emitir un examen que no tiene fecha de examen.");
                return;
            }

            if (Entity.Pregunta_Examens.Count == 0)
            {
                MessageBox.Show("No se puede emitir un examen que no tiene preguntas.");
                return;
            }

            PgMng.Reset((Preguntas_Grid.Rows.Count * 2) + 2, 1, "Guardando estado actual de las preguntas...", this);

            foreach (DataGridViewRow row in Preguntas_Grid.Rows)
            {
                PreguntaInfo p = _preguntas_modulo.GetItem(((PreguntaInfo)row.DataBoundItem).Oid);
                if (!p.Activa)
                {
                    continue;
                }

                //se añade la nueva PreguntaExamen al examen a partir de la Pregunta
                PreguntaExamen   pexamen  = _entity.PreguntaExamens.NewItem(_entity);
                FCriteria <long> criteria = new FCriteria <long>("OidPregunta", p.Oid);
                pexamen.CopyValues(p);
                pexamen.Orden = Convert.ToInt64(row.Cells[N_Orden.Name].Value);

                List <RespuestaInfo> respuestas = _respuestas_modulo.GetSubList(criteria);
                foreach (RespuestaInfo item in respuestas)
                {
                    if (item.OidPregunta == p.Oid)
                    {
                        RespuestaExamen rexamen = RespuestaExamen.NewChild(pexamen);
                        rexamen.CopyValues(item);
                        rexamen.OidExamen = _entity.Oid;
                        rexamen.MarkItemChild();
                        pexamen.RespuestaExamens.AddItem(rexamen);
                    }
                }
                PgMng.Grow();
            }

            Entity.FechaEmision = DateTime.Now;

            SaveAction();
        }
Exemple #13
0
 public PreguntasEmitidasViewForm(long oid, PreguntaExamens preguntas, PreguntaList lista, bool ismodal)
     : base(ismodal)
 {
     InitializeComponent();
     Lista            = preguntas;
     _lista_preguntas = lista;
     _pregunta        = Lista.GetItem(oid);
     if (Lista != null)
     {
         SetFormData();
         this.Text = Resources.Labels.PREGUNTA_EDIT_TITLE;
     }
     _mf_type = ManagerFormType.MFView;
 }
Exemple #14
0
        // GET: PreguntaExamen/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PreguntaExamen preguntaExamen = db.PreguntaExamen.Find(id);

            if (preguntaExamen == null)
            {
                return(HttpNotFound());
            }
            return(View(preguntaExamen));
        }
Exemple #15
0
        // GET: PreguntaExamen/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PreguntaExamen preguntaExamen = db.PreguntaExamen.Find(id);

            if (preguntaExamen == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ExamenID   = new SelectList(db.Examen, "ID", "Nombre", preguntaExamen.ExamenID);
            ViewBag.PreguntaID = new SelectList(db.Preguntas, "ID", "Nombre", preguntaExamen.PreguntaID);
            return(View(preguntaExamen));
        }
 public void CopyFrom(PreguntaExamen source)
 {
     _base.CopyValues(source);
 }
Exemple #17
0
        public static EstadisticaExamenList GetList(Examen examen)
        {
            EstadisticaExamenList list = new EstadisticaExamenList();

            int       total_alumnos = 0;
            Hashtable cont_fallos   = new Hashtable();

            foreach (PreguntaExamen preg in examen.PreguntaExamens)
            {
                EstadisticaExamen item = new EstadisticaExamen();

                item.Oid                 = preg.Oid;
                item.NumeroPregunta      = preg.Orden;
                item.TotalFallos         = 0;
                item.PorcentajeFallos    = 0;
                item.Anulada             = preg.Anulada;
                item.NumeroPreguntaBanco = preg.NPregunta;
                item.Nivel               = preg.Nivel;
                item.Tema                = preg.Tema;

                cont_fallos.Add(preg.Orden, item);
            }

            foreach (Alumno_Examen alumno in examen.Alumnos)
            {
                if (alumno.Presentado)
                {
                    total_alumnos++;
                    foreach (Respuesta_Alumno_Examen resp in alumno.Respuestas)
                    {
                        PreguntaExamen preg = examen.PreguntaExamens.GetItem(resp.OidPreguntaExamen);

                        if (!preg.Anulada)
                        {
                            if (!resp.Correcta)
                            {
                                ((EstadisticaExamen)cont_fallos[resp.Orden]).TotalFallos++;
                            }
                        }
                    }
                }
            }

            list.IsReadOnly = false;

            foreach (PreguntaExamen preg in examen.PreguntaExamens)
            {
                EstadisticaExamen item = (EstadisticaExamen)cont_fallos[preg.Orden];

                if (!preg.Anulada)
                {
                    item.PorcentajeFallos = total_alumnos != 0 ? Decimal.Round((decimal)item.TotalFallos / total_alumnos, 2) * 100 : 0;
                }

                list.Add(item.GetInfo());
            }

            list.IsReadOnly = true;

            return(list);
        }
 public static string SELECT()
 {
     return(PreguntaExamen.SELECT(new QueryConditions(), false));
 }
Exemple #19
0
 public RespuestaExamen NewItem(PreguntaExamen parent)
 {
     this.AddItem(RespuestaExamen.NewChild(parent));
     return(this[Count - 1]);
 }
Exemple #20
0
        protected override void PrintAction()
        {
            if (Entity.Pregunta_Examens.Count == 0)
            {
                return;
            }

            moleQule.Library.Timer t = new moleQule.Library.Timer();
            t.Start();

            //se obliga a guardar el examen antes de imprimir por si durante la impresión hubiera algún problema
            //quedan guardadas las modificaciones que pudieran no haberse guardado
            //if (Entity.IsDirty)
            //{
            //DialogResult result = MessageBox.Show(Resources.Messages.GUARDADO_EXAMEN,
            //    moleQule.Face.Resources.Labels.ADVISE_TITLE, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            //if (result == DialogResult.OK)
            //{
            try
            {
                ValidateInput();
            }
            catch (iQValidationException ex)
            {
                MessageBox.Show(ex.Message,
                                moleQule.Face.Resources.Labels.ADVISE_TITLE,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
                return;
            }
            //}
            //else
            //    return;
            //}

            Entity.PreguntaExamens = PreguntaExamens.NewChildList();

            string memo = string.Empty;

            foreach (Pregunta_Examen item in Entity.Pregunta_Examens)
            {
                memo += item.OidPregunta.ToString() + ",";
            }

            if (memo != string.Empty)
            {
                memo = memo.Substring(0, memo.Length - 1);
            }
            RespuestaList respuestas = RespuestaList.GetRespuestasExamenList(memo);

            foreach (DataGridViewRow row in Preguntas_Grid.Rows)
            {
                PreguntaInfo p = _preguntas_modulo.GetItem(((PreguntaInfo)row.DataBoundItem).Oid);
                t.Record("Obtener pregunta de la lista de preguntas del examen");

                PreguntaExamen pexamen = PreguntaExamen.NewChild(_entity);
                pexamen.CopyValues(p);
                pexamen.Orden = Convert.ToInt64(row.Cells[N_Orden.Name].Value);
                pexamen.MarkItemChild();
                t.Record("Crear PreguntaExamen");

                Entity.PreguntaExamens.AddItem(pexamen);
                FCriteria <long> criteria = new FCriteria <long>("OidPregunta", p.Oid);

                foreach (RespuestaInfo item in respuestas)
                {
                    if (p.Oid == item.OidPregunta)
                    {
                        RespuestaExamen rexamen = RespuestaExamen.NewChild(pexamen);
                        rexamen.CopyValues(item);
                        rexamen.MarkItemChild();
                        pexamen.RespuestaExamens.AddItem(rexamen);
                    }
                }
            }

            //Preguntas preguntas_examen = null;/* Pregunta.GetPreguntasByList(memo);*/
            PreguntaList preguntas_examen_list = PreguntaList.GetPreguntasByList(memo);

            if (EntityInfo.Desarrollo)
            {
                //tiene que llamar a ExamenDesarrolloReportForm
                ExamenDesarrolloReportForm form = new ExamenDesarrolloReportForm(true, EntityInfo, preguntas_examen_list, _entity.Pregunta_Examens);
                form.ShowDialog();
            }
            else
            {
                //tiene que llamar a ExamenTestReportForm
                ExamenTestReportForm form = new ExamenTestReportForm(true, EntityInfo, preguntas_examen_list, _entity.Pregunta_Examens);
                form.ShowDialog();
            }

            Entity.PreguntaExamens = PreguntaExamens.NewChildList();
        }