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(); }
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(); }
public VerPreguntasActionForm(bool IsModal, PreguntaExamens preguntas) : base(IsModal) { InitializeComponent(); _preguntas = preguntas; SetFormData(); this.Text = Resources.Labels.VER_PREGUNTAS_TITLE; }
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(); }
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; }
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(); }
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; }