Ejemplo n.º 1
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();
            }
        }
Ejemplo n.º 2
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();
        }
 public ExamenDesarrolloReportForm(bool IsModal, ExamenInfo item,
                                   PreguntaList preguntas, Pregunta_Examens preguntas_examen)
     : base(IsModal)
 {
     InitializeComponent();
     _entity           = item;
     _preguntas        = preguntas;
     _preguntas_examen = preguntas_examen;
     SetFormData();
     this.Text = Resources.Labels.PRINT_TITLE;
 }
Ejemplo n.º 4
0
        protected override void Desarrollo_Check()
        {
            if (_modulo == null)
            {
                return;
            }

            //string memo_preguntas = string.Empty;
            string tipo = string.Empty;

            if (Desarrollo_CB.Checked)
            {
                tipo = "Desarrollo";
            }
            else
            {
                tipo = "Test";
            }

            //string[] lista = Entity.MemoPreguntas.Split(';');

            //foreach (string oid in lista)
            //{
            //    try
            //    {
            //        long oid_pregunta = Convert.ToInt32(oid);
            //        Pregunta item = _preguntas.GetItem(oid_pregunta);
            //        item.Reservada = false;
            //    }
            //    catch
            //    {
            //        continue;
            //    }
            //}

            //Entity.MemoPreguntas = string.Empty;

            Entity.Pregunta_Examens = Pregunta_Examens.NewChildList();

            //while (Entity.MemoPreguntas != string.Empty)
            //{
            //    long pregunta;
            //    int index = Entity.MemoPreguntas.IndexOf(";");
            //    pregunta = Convert.ToInt64(Entity.MemoPreguntas.Substring(0, index));
            //    Entity.MemoPreguntas = Entity.MemoPreguntas.Substring(index + 1);
            //    _modulo.Preguntas.GetItem(pregunta).Reservada = false;
            //}

            Entity.Desarrollo = Desarrollo_CB.Checked;
            RellenaPreguntas();
        }
Ejemplo n.º 5
0
        protected override void QuitarAction()
        {
            if (!Entity.FechaEmision.Date.Equals(DateTime.MaxValue.Date) &&
                !Entity.FechaEmision.Date.Equals(DateTime.MinValue.Date))
            {
                MessageBox.Show("No se puede modificar un examen que ha sido emitido");
                return;
            }

            //string[] lista = Entity.MemoPreguntas.Split(';');

            //foreach (string oid in lista)
            //{
            //    try
            //    {
            //        long oid_pregunta = Convert.ToInt32(oid);
            //        Pregunta item = _preguntas.GetItem(oid_pregunta);
            //        item.Reservada = false;
            //    }
            //    catch
            //    {
            //        continue;
            //    }
            //}

            //Entity.MemoPreguntas = string.Empty;

            Entity.Pregunta_Examens = Pregunta_Examens.NewChildList();

            //while (Entity.MemoPreguntas != string.Empty)
            //{
            //    long pregunta;
            //    int index = Entity.MemoPreguntas.IndexOf(";");
            //    pregunta = Convert.ToInt64(Entity.MemoPreguntas.Substring(0, index));
            //    Entity.MemoPreguntas = Entity.MemoPreguntas.Substring(index + 1);
            //    Pregunta p = _modulo.Preguntas.GetItem(pregunta);
            //    p.Reservada = false;
            //}

            RellenaPreguntas();
        }
        public void SetSourceData(Examen item, ModuloInfo modulo, PreguntaList preguntas)
        {
            _modulo           = modulo;
            _submodulos       = SubmoduloList.GetModuloList(_modulo.Oid, false);
            _temas            = TemaList.GetModuloList(_modulo.Oid, false);
            _preguntas_modulo = preguntas;
            _preguntas_examen = item.Pregunta_Examens;
            _examen           = item.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 (Pregunta_Examen p in _preguntas_examen)
                        {
                            PreguntaInfo info = _preguntas_modulo.GetItem(p.OidPregunta);
                            if (info.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.º 7
0
        /// <summary>
        /// Guarda en la bd el objeto actual
        /// </summary>
        protected override bool SaveObject()
        {
            using (StatusBusy busy = new StatusBusy(moleQule.Face.Resources.Messages.SAVING))
            {
                this.Datos.RaiseListChangedEvents = false;

                // do the save
                try
                {
                    string memo = Entity.MemoPreguntas;

                    foreach (Pregunta_Examen item in Entity.Pregunta_Examens)
                    {
                        //si se han añadido preguntas al examen, se añaden al memo
                        if (memo.IndexOf(";" + item.OidPregunta.ToString() + ";") == -1 ||
                            memo.IndexOf(item.OidPregunta.ToString() + ";") != 0)
                        {
                            memo += item.OidPregunta.ToString() + ";";
                        }
                    }

                    if (memo != string.Empty)
                    {
                        //se cambian los ; por coma porque los estamos guardando en la base de datos
                        //separandolos con ; y el SQL necesita que se separen con ,
                        memo = memo.Substring(0, memo.Length - 1);
                        memo = memo.Replace(';', ',');
                    }

                    _preguntas_examen = Preguntas.GetPreguntasByList(memo, _entity.SessionCode);

                    List <long> incluidas = new List <long>();

                    //hay que reconstruir el memo_preguntas
                    string memo_viejo = _entity.MemoPreguntas;
                    _entity.MemoPreguntas = string.Empty;

                    foreach (Pregunta_Examen item in Entity.Pregunta_Examens)
                    {
                        if (_preguntas_examen.GetItem(item.OidPregunta).Activa)
                        {
                            incluidas.Add(item.OidPregunta);
                            _entity.MemoPreguntas += item.OidPregunta.ToString() + ";";
                        }
                    }

                    GetPreguntasReservadas();

                    foreach (Pregunta item in _preguntas_examen)
                    {
                        if (item.Reservada && !preguntas_mismo_dia.Contains(item.Oid))
                        {
                            //hay que comprobar que estaba en el memopreguntas
                            //si no estaba, es que alguien la ha reservado  y no se puede incluir en el examen
                            if (memo_viejo.IndexOf(";" + item.Oid.ToString() + ";") == -1 &&
                                memo_viejo.IndexOf(item.Oid.ToString() + ";") != 0)
                            {
                                MessageBox.Show(string.Format(Resources.Messages.PREGUNTA_INCLUIDA, item.Codigo),
                                                moleQule.Library.Application.AppController.APP_TITLE,
                                                MessageBoxButtons.OK,
                                                MessageBoxIcon.Exclamation);
                                //_preguntas_examen.CloseSession();
                                return(false);
                            }
                        }

                        //si están en el examen
                        if (incluidas.Contains(item.Oid))
                        {
                            //y el examen ha sido emitido, se bloquean
                            if (_entity.FechaEmision.Date.Equals(DateTime.Today.Date))
                            {
                                item.Reservada           = false;
                                item.Bloqueada           = true;
                                item.FechaUltimoExamen   = _entity.FechaExamen;
                                item.FechaDisponibilidad = _entity.FechaExamen.AddMonths(6);
                            }
                            else //si no, se reservan
                            {
                                item.Reservada = true;
                            }
                        }
                        else //si se han quitado del examen, deja de estar reservada
                        {
                            if (!preguntas_mismo_dia.Contains(item.Oid))
                            {
                                item.Reservada = false;
                            }
                        }
                    }
                    _entity.Pregunta_Examens = Pregunta_Examens.NewChildList();

                    Examen temp = _entity.Clone();
                    temp.ApplyEdit();

                    _entity = temp.Save();
                    _entity.ApplyEdit();

                    //rutina para copiar las imágenes de las preguntas en la carpeta de fotos
                    //de preguntas de examen
                    if (_entity.FechaEmision.Date.Equals(DateTime.Today.Date))
                    {
                        PgMng.Grow("Guardando imágenes...");

                        _entity.MemoPreguntas = string.Empty;
                        int orden = 1;
                        foreach (Pregunta origen in _preguntas_examen)
                        {
                            if (origen.Bloqueada == false)
                            {
                                continue;
                            }

                            foreach (PreguntaExamen destino in _entity.PreguntaExamens)
                            {
                                if (destino.OidPregunta == origen.Oid)
                                {
                                    if (origen.Imagen != string.Empty && File.Exists(origen.ImagenWithPath))
                                    {
                                        //string ext = string.Empty;

                                        Bitmap imagen = new Bitmap(origen.ImagenWithPath);

                                        //if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Jpeg.Guid))
                                        //    ext = ".jpg";
                                        //else
                                        //{
                                        //    if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Bmp.Guid))
                                        //        ext = ".bmp";
                                        //    else
                                        //    {
                                        //        if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Png.Guid))
                                        //            ext = ".png";
                                        //    }
                                        //}

                                        string path = origen.ImagenWithPath;

                                        destino.Imagen = destino.Oid.ToString("000000") + path.Substring(path.LastIndexOf("."));

                                        int maxHeight = imagen.Height > imagen.Width ? imagen.Height : imagen.Width;

                                        Images.Save(origen.ImagenWithPath, destino.ImagenWithPath, maxHeight);

                                        imagen.Dispose();
                                    }
                                    else
                                    {
                                        destino.Imagen = string.Empty;
                                    }
                                    if (origen.ModeloRespuesta != string.Empty && File.Exists(origen.ModeloRespuestaPath))
                                    {
                                        string ext = origen.ModeloRespuesta.Substring(origen.ModeloRespuesta.LastIndexOf('.'));
                                        destino.ModeloRespuesta = destino.Oid.ToString("000000") + ext;

                                        string directorio = destino.ModeloRespuestaPath.Substring(0, destino.ModeloRespuestaPath.Length - destino.ModeloRespuesta.Length);
                                        if (!Directory.Exists(directorio))
                                        {
                                            Directory.CreateDirectory(directorio);
                                        }
                                        File.Copy(origen.ModeloRespuestaPath, destino.ModeloRespuestaPath);
                                    }
                                    else
                                    {
                                        origen.ModeloRespuesta = string.Empty;
                                    }
                                    orden++;
                                    break;
                                }
                            }

                            PgMng.Grow();
                        }
                        temp = _entity.Clone();
                        //_preguntas_examen.Save();
                        //_entity = temp.Save();
                    }

                    PgMng.Grow("Guardando examen...");

                    _preguntas_examen.Save();

                    temp    = _entity.Clone();
                    _entity = temp.Save();
                    _entity.BeginEdit();

                    PgMng.FillUp();

                    return(true);
                }
                catch (iQValidationException ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex) +
                                    Environment.NewLine + ex.SysMessage,
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex),
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(true);
                }
                finally
                {
                    this.Datos.RaiseListChangedEvents = true;
                }
            }
        }