/// <summary>
        /// Copia los atributos del objeto
        /// </summary>
        /// <param name="source">Objeto origen</param>
        protected void CopyValues(PreguntaExamenInfo source, Preguntas preguntas)
        {
            if (source == null)
            {
                return;
            }

            Oid = source.Oid;
            _base.Record.OidExamen       = source.OidExamen;
            _base.Record.OidModulo       = source.OidModulo;
            _base.Record.OidTema         = source.OidTema;
            _base.Record.Nivel           = source.Nivel;
            _base.Record.FechaAlta       = source.FechaAlta;
            _base.Record.Texto           = source.Texto;
            _base.Record.Tipo            = source.Tipo;
            _base.Record.Imagen          = source.Imagen;
            _base.Record.ModeloRespuesta = source.ModeloRespuesta;
            _base.Record.Idioma          = source.Idioma;
            _base.Record.Observaciones   = source.Observaciones;
            _base.Record.ImagenGrande    = source.ImagenGrande;
            _base.Record.Orden           = source.Orden;
            _base.Record.OidPregunta     = source.OidPregunta;

            if (_base.Record.Tipo == "Desarrollo") //si la pregunta es de tipo test, las imágenes se cargan en las respuestas
            {
                if (source.Imagen != string.Empty)
                {
                    if (File.Exists(source.ImagenWithPath))
                    {
                        _base.Record.Imagen = Resize(source.ImagenWithPath, source.Imagen);
                    }
                    else
                    {
                        _base.Record.Imagen = string.Empty;
                    }
                }
                else
                {
                    if (preguntas != null)
                    {
                        Pregunta p = preguntas.GetItem(source.OidPregunta);

                        if (p != null && p.Imagen != string.Empty)
                        {
                            if (File.Exists(p.ImagenWithPath))
                            {
                                _base.Record.Imagen = Resize(p.ImagenWithPath, p.Imagen);
                            }
                            else
                            {
                                _base.Record.Imagen = string.Empty;
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Retrieve the complete list from db
        /// </summary>
        /// <returns>PreguntaList</returns>
        public static PreguntaList GetList(bool childs)
        {
            CriteriaEx criteria = Pregunta.GetCriteria(Pregunta.OpenSession());

            criteria.Childs = childs;
            criteria.Query  = Preguntas.SELECT_PREGUNTAS();
            //No criteria. Retrieve all de List
            PreguntaList list = DataPortal.Fetch <PreguntaList>(criteria);

            CloseSession(criteria.SessionCode);

            return(list);
        }
예제 #3
0
        public static PreguntaList GetPreguntasByList(string lista_preguntas)
        {
            CriteriaEx   criteria = Pregunta.GetCriteria(Pregunta.OpenSession());
            PreguntaList lista    = new PreguntaList();

            if (lista_preguntas == string.Empty)
            {
                lista_preguntas = "-1";
            }
            Pregunta.BeginTransaction(criteria.SessionCode);
            criteria.Query  = Preguntas.SELECT_BY_LIST(lista_preguntas);
            criteria.Childs = true;

            //No criteria. Retrieve all de List
            PreguntaList aux = DataPortal.Fetch <PreguntaList>(criteria);

            CloseSession(criteria.SessionCode);

            string[] orden = lista_preguntas.Split(',');

            lista.IsReadOnly = false;

            foreach (string item in orden)
            {
                try
                {
                    long         oid      = Convert.ToInt32(item);
                    PreguntaInfo pregunta = aux.GetItem(oid);
                    lista.AddItem(pregunta);
                }
                catch { continue; }
            }

            lista.IsReadOnly = true;

            return(lista);
        }
예제 #4
0
        public static PreguntaList GetPreguntasModulo(long oid_modulo, string memo_preguntas)
        {
            if (memo_preguntas == string.Empty)
            {
                return(GetPreguntasModulo(oid_modulo));
            }
            CriteriaEx criteria        = Pregunta.GetCriteria(Pregunta.OpenSession());
            string     lista_preguntas = string.Empty;

            if (memo_preguntas != string.Empty)
            {
                memo_preguntas = memo_preguntas.Substring(0, memo_preguntas.Length - 1);
            }
            lista_preguntas = memo_preguntas.Replace(';', ',');

            Pregunta.BeginTransaction(criteria.SessionCode);
            criteria.Query  = Preguntas.SELECT_BY_MODULO_LIST(oid_modulo, lista_preguntas);
            criteria.Childs = false;

            CloseSession(criteria.SessionCode);

            //No criteria. Retrieve all de List
            return(DataPortal.Fetch <PreguntaList>(criteria));
        }
예제 #5
0
        public static void CompletaDuplicado(long oid_tema_original, long oid_tema_copia)
        {
            int sesion = nHManager.Instance.OpenSession();

            Tema.DoLOCK(nHManager.Instance.GetSession(sesion));
            string query = INSERT_PREGUNTAS_DUPLICADAS(oid_tema_original, oid_tema_copia);

            nHManager.Instance.SQLNativeExecute(query, nHManager.Instance.GetSession(sesion));

            Tema.DoLOCK(nHManager.Instance.GetSession(sesion));
            query = UPDATE_OBSERVACIONES_DUPLICADAS(oid_tema_original, oid_tema_copia);
            nHManager.Instance.SQLNativeExecute(query, nHManager.Instance.GetSession(sesion));

            CloseSession(sesion);

            Preguntas lista_duplicadas = Preguntas.GetPreguntasDuplicadasTema(oid_tema_copia);
            Preguntas lista_originales = Preguntas.GetPreguntasTema(oid_tema_original, true);

            long serial   = Pregunta.GetNewSerial();
            long serial_r = Respuesta.GetNewSerial(null);

            foreach (Pregunta item in lista_duplicadas)
            {
                Pregunta original = lista_originales.GetItem(item.OidOld);

                item.Serial = serial++;
                item.Codigo = item.Serial.ToString(Resources.Defaults.PREGUNTA_CODE_FORMAT);

                foreach (Respuesta r in original.Respuestas)
                {
                    Respuesta new_r = Respuesta.NewChild(item);
                    new_r        = r.Clone();
                    new_r.Serial = serial_r++;
                    new_r.Codigo = serial_r.ToString(Resources.Defaults.RESPUESTA_CODE_FORMAT);
                    item.Respuestas.Add(new_r);
                }

                if (original.Imagen != string.Empty)
                {
                    string ext = string.Empty;
                    if (!File.Exists(moleQule.Library.Instruction.ModuleController.FOTOS_PREGUNTAS_PATH + original.Imagen))
                    {
                        continue;
                    }

                    Bitmap imagen = new Bitmap(Library.Instruction.ModuleController.FOTOS_PREGUNTAS_PATH + original.Imagen);

                    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";
                            }
                        }
                    }

                    item.Imagen = item.Oid.ToString("000000") + ext;

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

                    Images.Save(original.ImagenWithPath, item.ImagenWithPath, maxHeight);

                    imagen.Dispose();
                }
                else
                {
                    item.Imagen = string.Empty;
                }
            }

            lista_duplicadas.Save();
            lista_duplicadas.CloseSession();
        }
        public PreguntasDesarrolloRpt GetDetailPreguntasDesarrolloReport(PreguntaExamens lista_preguntas, Preguntas preguntas)
        {
            if (lista_preguntas == null)
            {
                return(null);
            }
            PreguntasDesarrolloRpt doc = new PreguntasDesarrolloRpt();

            List <PreguntaExamenInfo> preguntas_examen = new List <PreguntaExamenInfo>();

            foreach (PreguntaExamen item in lista_preguntas)
            {
                PreguntaExamenInfo info = item.GetInfo(true);
                preguntas_examen.Add(info.GetPrintObject(preguntas));
            }

            //Si no existen conceptos, no tiene sentido un informe detallado. Además, falla en Crystal Reports
            if (preguntas_examen.Count <= 0)
            {
                return(null);
            }

            // doc.Subreports["RespuestaExamenListSubRpt"].SetDataSource(preguntas);

            return(doc);
        }
        public PreguntasTestRpt GetDetailPreguntasTestReport(PreguntaExamens lista_preguntas, Preguntas preguntas)
        {
            if (lista_preguntas == null)
            {
                return(null);
            }
            PreguntasTestRpt doc = new PreguntasTestRpt();

            List <PreguntaExamenInfo>   preguntas_examen = new List <PreguntaExamenInfo>();
            List <RespuestaExamenPrint> respuestas       = new List <RespuestaExamenPrint>();

            foreach (PreguntaExamen item in lista_preguntas)
            {
                bool imagen             = true;
                PreguntaExamenInfo info = item.GetInfo(true);
                preguntas_examen.Add(info.GetPrintObject(preguntas));
                foreach (RespuestaExamenInfo r_info in info.RespuestaExamenes)
                {
                    respuestas.Add(r_info.GetPrintObject(info, preguntas, null, imagen));
                    imagen = false; //será verdadero sólo en la primera iteración, para que cargue la imagen sólo una vez
                }
            }

            //Si no existen conceptos, no tiene sentido un informe detallado. Además, falla en Crystal Reports
            if (preguntas_examen.Count <= 0)
            {
                return(null);
            }

            doc.Subreports["RespuestaExamenListSubRpt"].SetDataSource(respuestas);

            return(doc);
        }
 public PreguntaExamenPrint GetPrintObject(Preguntas preguntas)
 {
     return(PreguntaExamenPrint.New(this, preguntas));
 }
예제 #9
0
 public RespuestaExamenPrint GetPrintObject(PreguntaExamenInfo pregunta, Preguntas preguntas, ExamenInfo examen, bool imagen)
 {
     return(RespuestaExamenPrint.New(this, pregunta, preguntas, examen, imagen));
 }
        //public System.Byte[] ImagenPregunta { get { return _imagen_pregunta; } }

        /// <summary>
        /// Copia los atributos del objeto
        /// </summary>
        /// <param name="source">Objeto origen</param>
        protected void CopyValues(RespuestaExamenInfo source,
                                  PreguntaExamenInfo pregunta,
                                  Preguntas preguntas,
                                  ExamenInfo examen,
                                  bool imagen)
        {
            if (source == null)
            {
                return;
            }

            Oid = source.Oid;
            _base.Record.OidPregunta = source.OidPregunta;
            _base.Record.Texto       = source.Texto;
            _base.Record.Opcion      = source.Opcion;
            _base.Record.Correcta    = source.Correcta;

            if (pregunta == null)
            {
                return;
            }

            _pregunta      = pregunta.Texto;
            _orden         = pregunta.Orden;
            _imagen        = pregunta.Imagen;
            _imagen_grande = pregunta.ImagenGrande;

            if (imagen)
            {
                if (pregunta.Imagen != string.Empty)
                {
                    if (File.Exists(pregunta.ImagenWithPath))
                    {
                        _imagen = Resize(pregunta.ImagenWithPath, pregunta.Imagen);
                    }
                    else
                    {
                        _imagen = string.Empty;
                    }
                }
                else
                {
                    if (preguntas != null)
                    {
                        Pregunta p = preguntas.GetItem(pregunta.OidPregunta);

                        if (p != null && p.Imagen != string.Empty)
                        {
                            if (File.Exists(p.ImagenWithPath))
                            {
                                _imagen = Resize(p.ImagenWithPath, p.Imagen);
                            }
                            else
                            {
                                _imagen = string.Empty;
                            }
                        }
                    }
                }
            }
        }