public void SetSourceData(string item, ModuloInfo modulo, Examen examen)
        {
            _modulo           = modulo;
            _submodulos       = SubmoduloList.GetModuloList(_modulo.Oid, false);
            _temas            = TemaList.GetModuloList(_modulo.Oid, false);
            _preguntas_examen = examen.PreguntaExamens;
            _examen           = examen.GetInfo(false);

            this.Text = Resources.Labels.RESUMEN_EXAMEN_TITLE;
            lista     = new List <RegistroResumen>();
            string memo_preguntas = ";" + item;
            long   contador       = 0;

            foreach (SubmoduloInfo obj in _submodulos)
            {
                foreach (TemaInfo tema in _temas)
                {
                    if (tema.OidSubmodulo == obj.Oid)
                    {
                        foreach (PreguntaExamen p in _preguntas_examen)
                        {
                            if (p.OidTema == tema.Oid)
                            {
                                lista = RegistroResumen.ContabilizaPregunta(lista, obj.Oid, obj.Codigo + " " + obj.Texto, tema.Codigo);
                                contador++;
                            }
                        }
                    }
                }
            }
            lista.Add(new RegistroResumen("TODOS", "TODOS", contador));

            RefreshMainData();
        }
Ejemplo n.º 2
0
        public override void RefreshSecondaryData()
        {
            int validas = 0;

            foreach (PreguntaExamen item in _entity.PreguntaExamens)
            {
                if (!item.Anulada)
                {
                    validas++;
                }
            }

            Preguntas_TB.Text = validas.ToString();
            PgMng.Grow(string.Empty, "Preguntas_TB");

            Desarrollo_CB.Checked = _entity.Desarrollo;
            PgMng.Grow(string.Empty, "Desarrollo_CB");

            if (Entity != null && Entity.OidModulo != 0)
            {
                _modulo = ModuloInfo.Get(Entity.OidModulo, false);
                PgMng.Grow(string.Empty, "_modulo");
                _preguntas = _entity.PreguntaExamens;
                Datos_Preguntas.DataSource = PreguntaExamens.SortList(_entity.PreguntaExamens, "Orden", ListSortDirection.Ascending);
                PgMng.Grow(string.Empty, "_preguntas");
                _submodulos = SubmoduloList.GetModuloList(_modulo.Oid, false);
                PgMng.Grow(string.Empty, "_submodulos");
                _temas = TemaList.GetModuloList(_modulo.Oid, false);
                PgMng.Grow(string.Empty, "_temas");
            }
            PgMng.Grow();

            base.RefreshSecondaryData();
        }
Ejemplo n.º 3
0
 public VerPreguntasActionForm(bool IsModal, PreguntaExamens preguntas)
     : base(IsModal)
 {
     InitializeComponent();
     _preguntas = preguntas;
     SetFormData();
     this.Text = Resources.Labels.VER_PREGUNTAS_TITLE;
 }
Ejemplo n.º 4
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();
        }
Ejemplo n.º 5
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;
 }
Ejemplo n.º 6
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();
        }
Ejemplo n.º 7
0
        protected override void LiberarAction()
        {
            if (!AppContext.User.IsAdmin /*|| !(AppContext.User.Name == "Admin")*/)
            {
                MessageBox.Show("Esta acción solo está permitida al administrador del sistema");
                return;
            }

            _liberar = true;

            if (Entity.FechaExamen.Date > DateTime.Today.Date)
            {
                if (Entity.Alumnos != null && Entity.Alumnos.Count > 0)
                {
                    MessageBox.Show("No se puede liberar un examen que tiene alumnos asociados.");
                }
                else
                {
                    PgMng.Reset(Entity.PreguntaExamens.Count * 2 + 2, 1, "Eliminando copias de preguntas y respuestas...", this);

                    PreguntaExamens preguntas = Entity.PreguntaExamens.Clone();
                    Entity.MemoPreguntas = string.Empty;
                    foreach (PreguntaExamen p in preguntas)
                    {
                        Entity.PreguntaExamens.Remove(p.Oid);
                        Entity.MemoPreguntas += p.OidPregunta.ToString() + ";";

                        PgMng.Grow();
                    }

                    string directorio = Library.Application.AppController.FOTOS_PREGUNTAS_EXAMEN_PATH + Entity.Oid.ToString("00000");

                    if (Directory.Exists(directorio))
                    {
                        Directory.Delete(directorio, true);
                    }

                    PgMng.Grow("Liberando preguntas...");

                    if (Entity.MemoPreguntas != string.Empty)
                    {
                        PgMng.Grow("Liberando preguntas...");

                        string lista_preguntas = Entity.MemoPreguntas.Replace(';', ',').Substring(0, Entity.MemoPreguntas.Length - 1);

                        _preguntas_examen = Preguntas.GetPreguntasByList(lista_preguntas, _entity.SessionCode);
                        foreach (Pregunta item in _preguntas_examen)
                        {
                            DateTime fecha = ExamenInfo.GetUltimoByPreguntaIncluida(item.Oid, Entity.FechaExamen);
                            if (fecha != DateTime.MinValue)
                            {
                                item.FechaDisponibilidad = fecha.AddMonths(6);
                                item.FechaUltimoExamen   = fecha;
                            }
                            else
                            {
                                item.FechaDisponibilidad = item.FechaAlta;
                                item.FechaUltimoExamen   = item.FechaAlta.AddMonths(-6);
                            }
                            item.Bloqueada = false;
                            item.Reservada = true;

                            PgMng.Grow();
                        }
                        _preguntas_examen.Save();
                    }

                    Entity.FechaEmision   = DateTime.MaxValue;
                    FExamen_DTP.Enabled   = true;
                    Desarrollo_CB.Enabled = true;
                    Instructor_CB.Enabled = true;
                    Promocion_CB.Enabled  = true;
                    Tipo_TB.Enabled       = true;

                    PgMng.FillUp();
                    MessageBox.Show("El examen ha sido liberado correctamente.");

                    SaveAction();
                    //Scripts.FormatFechaDisponibilidad();
                }
            }
            else
            {
                MessageBox.Show("No se puede liberar un examen que ya se ha celebrado.");
            }

            _liberar = false;
        }