protected override void GetFormSourceData(long oid)
        {
            Examen examen = Examen.Get(oid, true);

            string[] preguntas = examen.MemoPreguntas.Split(';');

            //se genera la lista de preguntas del examen con la que se va a trabajar
            foreach (string item in preguntas)
            {
                try
                {
                    long            oid_pregunta = Convert.ToInt32(item);
                    Pregunta_Examen p_examen     = Pregunta_Examen.NewChild(examen);
                    p_examen.OidPregunta = oid_pregunta;
                    examen.Pregunta_Examens.AddItem(p_examen);
                }
                catch
                {
                    continue;
                }
            }

            _entity = examen.GetInfo(true);
            examen.CloseSession();
            _mf_type = ManagerFormType.MFView;
        }
예제 #2
0
        protected override void GetFormSourceData(long oid)
        {
            _entity = Examen.Get(oid);

            string[] preguntas = _entity.MemoPreguntas.Split(';');

            //se genera la lista de preguntas del examen con la que se va a trabajar
            foreach (string item in preguntas)
            {
                try
                {
                    if (item != string.Empty)
                    {
                        long            oid_pregunta = Convert.ToInt32(item);
                        Pregunta_Examen p_examen     = Pregunta_Examen.NewChild(_entity);
                        p_examen.OidPregunta = oid_pregunta;
                        _entity.Pregunta_Examens.AddItem(p_examen);
                    }
                }
                catch
                {
                    continue;
                }
            }

            _entity.BeginEdit();
            _mf_type = ManagerFormType.MFEdit;
        }
예제 #3
0
        /// <summary>
        /// Implementa Save_button_Click
        /// </summary>
        protected override void SubmitAction()
        {
            int orden_nuevo = 0;

            try
            {
                orden_nuevo = Convert.ToInt16(OrdenNuevo_TB.Text);
            }
            catch
            {
                MessageBox.Show("El valor introducido no es válido");
                return;
            }
            if (OrdenNuevo_TB.Text != string.Empty)
            {
                if (orden_nuevo > _count)
                {
                    MessageBox.Show("El valor introducido es menor que el número de preguntas del examen.");
                    return;
                }

                if (orden_nuevo < 1)
                {
                    MessageBox.Show("El valor introducido debe ser mayor que 0.");
                    return;
                }

                if (_index != orden_nuevo)
                {
                    Pregunta_Examens aux = _entity.Pregunta_Examens.Clone();
                    _entity.Pregunta_Examens = Pregunta_Examens.NewChildList();
                    Pregunta_Examen copia = aux[(int)_index - 1];
                    aux.RemoveAt((int)_index - 1);

                    bool insertada = false;
                    //se inserta la pregunta seleccionada en el nuevo índice
                    //se van copiando las demás hasta encontrar el hueco donde se quiere insertar la seleccionada
                    foreach (Pregunta_Examen item in aux)
                    {
                        if (_entity.Pregunta_Examens.Count == orden_nuevo - 1)
                        {
                            _entity.Pregunta_Examens.AddItem(copia);
                            insertada = true;
                        }
                        _entity.Pregunta_Examens.AddItem(item);
                    }

                    if (!insertada)
                    {
                        _entity.Pregunta_Examens.AddItem(copia);
                    }
                }

                _action_result = DialogResult.OK;
                Close();
            }
        }
예제 #4
0
        private void Aceptar_Button_Click(object sender, EventArgs e)
        {
            _entity.Pregunta_Examens = Pregunta_Examens.NewChildList();

            foreach (TreeNode t in Arbol_TV.Nodes)
            {
                foreach (TreeNode preg in t.Nodes)
                {
                    if (preg.Checked && preg.ImageKey == Properties.Settings.Default.PREGUNTA_DISPONIBLE_ICON)
                    {
                        PreguntaInfo p = Preg.GetItem(((PreguntaInfo)preg.Tag).Oid);

                        //if (!Esta(((PreguntaInfo)preg.Tag).Oid))
                        //{
                        Pregunta_Examen pregunta = Pregunta_Examen.NewChild(_entity);
                        pregunta.OidPregunta = p.Oid;
                        _entity.Pregunta_Examens.AddItem(pregunta);
                        //}
                        //if (_entity.FechaExamen.Date.Equals(DateTime.MaxValue.Date))
                        //    p.FechaDisponibilidad = DateTime.MaxValue;
                        //else
                        //    p.FechaDisponibilidad = _entity.FechaExamen.Date.AddYears(1);
                        //p.Reservada = true;
                        //p.Bloqueada = false; // se libera porque sino se podría confundir con una pregunta que está en un examen emitido
                        //_memo_preguntas += ((Pregunta)preg.Tag).Oid.ToString() + ";";
                    }
                    //else
                    //{
                    //    //si estaba pero se ha deseleccionado hay que marcarla como disponible
                    //    if (Esta(((PreguntaInfo)preg.Tag).Oid))
                    //    {
                    //        PreguntaInfo p = Preg.GetItem(((PreguntaInfo)preg.Tag).Oid);

                    //        //hay que buscar el indice de la Pregunta_Examen y quitarla de la lista
                    //        int index = 0;
                    //        foreach (Pregunta_Examen item in _entity.Pregunta_Examens)
                    //        {
                    //            if (item.OidPregunta == p.Oid)
                    //                break;
                    //            index++;
                    //        }

                    //        _entity.Pregunta_Examens.RemoveAt(index);

                    //        //p.FechaDisponibilidad = DateTime.Today;
                    //        //p.Reservada = false;
                    //    }
                    //}
                }
            }
            //_entity.MemoPreguntas = _memo_preguntas;
            //_modulo.Preguntas = Preg;
            Close();
        }
예제 #5
0
        private void Select_Button_Click(object sender, EventArgs e)
        {
            _plantilla = PlantillaExamenInfo.Get(ActiveOID);

            if (_plantilla != null)
            {
                _guardado = true;

                if (!_plantilla.Desarrollo)
                {
                    TemaList temas = TemaList.GetModuloList(_modulo.Oid, false);

                    foreach (Preguntas_PlantillaInfo item in _plantilla.Preguntas)
                    {
                        long count = item.NPreguntas;

                        PreguntaList preguntas_tema = PreguntaList.GetPreguntasDisponiblesTema(item.OidTema, _entity.Desarrollo, _entity.FechaExamen, count);

                        if (preguntas_tema != null)
                        {
                            foreach (PreguntaInfo info in preguntas_tema)
                            {
                                if (count == 0)
                                {
                                    break;
                                }

                                Pregunta_Examen pregunta = Pregunta_Examen.NewChild(_entity);
                                pregunta.OidPregunta = info.Oid;
                                _entity.Pregunta_Examens.AddItem(pregunta);
                                count--;
                            }
                        }

                        if (count != 0)
                        {
                            TemaInfo tema = temas.GetItem(item.OidTema);
                            MessageBox.Show("No hay suficientes preguntas disponibles para el tema " + tema.Codigo);
                        }
                    }
                }
                else
                {
                    long count = _plantilla.NPreguntas;

                    PreguntaList preguntas = PreguntaList.GetPreguntasDisponiblesModulo(_entity.OidModulo, _entity.Desarrollo, _entity.FechaExamen, count);

                    if (preguntas != null)
                    {
                        foreach (PreguntaInfo info in preguntas)
                        {
                            if (count == 0)
                            {
                                break;
                            }

                            Pregunta_Examen pregunta = Pregunta_Examen.NewChild(_entity);
                            pregunta.OidPregunta = info.Oid;
                            _entity.Pregunta_Examens.AddItem(pregunta);
                            count--;
                        }
                    }

                    if (count != 0)
                    {
                        MessageBox.Show("No hay suficientes preguntas disponibles en el submódulo");
                    }
                }
            }

            Cerrar();
            Close();
        }