/// <summary> /// Asigna el objeto principal al origen de datos /// <returns>void</returns> /// </summary> protected override void RefreshMainData() { if (_pregunta != null) { Datos.DataSource = _pregunta; } PgMng.Grow(); Images.Show(_pregunta.ImagenWithPath, Imagen_PictureBox); PgMng.Grow(); if (_lista_preguntas != null && _lista_preguntas.Count > 0) { PreguntaInfo item = _lista_preguntas.GetItem(_pregunta.OidPregunta); Numero_TB.Text = item.Codigo; } SortedBindingList <RespuestaExamen> ordenadas = RespuestaExamens.SortList(_pregunta.RespuestaExamens, "Opcion", ListSortDirection.Ascending); List <RespuestaExamen> lista = new List <RespuestaExamen>(); foreach (RespuestaExamen item in ordenadas) { if ((_pregunta.Tipo == "Test") || (item.Texto != string.Empty && item.Texto != ".")) { lista.Add(item); } } Datos_Respuestas.DataSource = lista; }
/// <summary> /// Inicializa el Contexto /// </summary> private void InicializaContexto() { Contexto = new PreguntaInfo { Estatus = EstatusEnum.Activo }; }
/// <summary> /// Metodo para Guardar/Modificar una entidad Pregunta /// </summary> /// <param name="info"></param> /// <returns></returns> public int Guardar(PreguntaInfo info) { try { Logger.Info(); var id = 0; if (info.PreguntaID > 0) { id = da.Actualizar <PreguntaInfo>(info); } else { id = da.Insertar <PreguntaInfo>(info); } return(id); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Inicializa el Contexto /// </summary> private void InicializaContexto() { Contexto = new PreguntaInfo { Estatus = EstatusEnum.Activo, UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(), }; }
/// <summary> /// Metodo que valida los datos para guardar /// </summary> /// <returns></returns> private bool ValidaGuardar() { bool resultado = true; string mensaje = string.Empty; try { if (string.IsNullOrWhiteSpace(txtPreguntaID.Text)) { resultado = false; mensaje = Properties.Resources.PreguntaEdicion_MsgPreguntaIDRequerida; txtPreguntaID.Focus(); } else if (cmbTipoPregunta.SelectedItem == null || Contexto.TipoPreguntaID == 0) { resultado = false; mensaje = Properties.Resources.PreguntaEdicion_MsgTipoPreguntaIDRequerida; cmbTipoPregunta.Focus(); } else if (string.IsNullOrWhiteSpace(txtDescripcion.Text) || Contexto.Descripcion == string.Empty) { resultado = false; mensaje = Properties.Resources.PreguntaEdicion_MsgDescripcionRequerida; txtDescripcion.Focus(); } else if (cmbActivo.SelectedItem == null) { resultado = false; mensaje = Properties.Resources.PreguntaEdicion_MsgActivoRequerida; cmbActivo.Focus(); } else { int preguntaId = Extensor.ValorEntero(txtPreguntaID.Text); string descripcion = txtDescripcion.Text; var preguntaPL = new PreguntaBL(); PreguntaInfo pregunta = preguntaPL.ObtenerPorTipoPreguntaDescripcion(Contexto.TipoPreguntaID, descripcion); if (pregunta != null && (preguntaId == 0 || preguntaId != pregunta.PreguntaID)) { resultado = false; mensaje = string.Format(Properties.Resources.PreguntaEdicion_MsgDescripcionExistente, pregunta.PreguntaID); } } } catch (Exception ex) { throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } if (!string.IsNullOrWhiteSpace(mensaje)) { SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning); } return(resultado); }
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 PreguntasViewForm(long oid, PreguntaList preguntas, bool ismodal) : base(ismodal) { InitializeComponent(); ListaInfo = preguntas; _pregunta_info = PreguntaInfo.Get(oid, true); if (ListaInfo != null) { SetFormData(); this.Text = Resources.Labels.PREGUNTA_EDIT_TITLE; } _mf_type = ManagerFormType.MFView; }
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(); }
/// <summary> /// Obtiene una lista paginada de Pregunta /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <PreguntaInfo> ObtenerPorPagina(PaginacionInfo pagina, PreguntaInfo filtro) { try { Logger.Info(); ResultadoInfo <PreguntaInfo> result = new ResultadoInfo <PreguntaInfo>(); var condicion = da.Tabla <PreguntaInfo>().Where(e => e.Estatus == filtro.Estatus); if (filtro.PreguntaID > 0) { condicion = condicion.Where(e => e.PreguntaID == filtro.PreguntaID); } if (!string.IsNullOrEmpty(filtro.Descripcion)) { condicion = condicion.Where(e => e.Descripcion.Contains(filtro.Descripcion)); } if (filtro.TipoPregunta != null && filtro.TipoPregunta.TipoPreguntaID != 0) { condicion = condicion.Where(e => e.TipoPreguntaID == filtro.TipoPregunta.TipoPreguntaID); } result.TotalRegistros = condicion.Count(); int inicio = pagina.Inicio; int limite = pagina.Limite; if (inicio > 1) { int limiteReal = (limite - inicio) + 1; inicio = (limite / limiteReal); limite = limiteReal; } var paginado = condicion .OrderBy(e => e.Descripcion) .Skip((inicio - 1) * limite) .Take(limite); result.Lista = paginado.ToList(); AgregarTipoPregunta(result.Lista); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Evento que se ejecuta mientras se esta cerrando la ventana /// </summary> /// <param name="e"></param> protected override void OnClosing(CancelEventArgs e) { if (confirmaSalir) { MessageBoxResult result = SkMessageBox.Show(this, Properties.Resources.Msg_CerrarSinGuardar, MessageBoxButton.YesNo, MessageImage.Question); if (result == MessageBoxResult.Yes) { Contexto = null; } else { e.Cancel = true; } } }
/// <summary> /// Metodo para Guardar/Modificar una entidad Pregunta /// </summary> /// <param name="info"></param> /// <returns></returns> public int Guardar(PreguntaInfo info) { try { Logger.Info(); return(preguntaDALORM.Guardar(info)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public override void DeleteObject(long oid) { //if (MessageBox.Show(moleQule.Face.Resources.Messages.DELETE_CONFIRM, // moleQule.Face.Resources.Labels.ADVISE_TITLE, // MessageBoxButtons.YesNoCancel, // MessageBoxIcon.Question) == DialogResult.Yes) //{ try { if (!List.Contains(ActiveOID)) { PreguntaInfo item = PreguntaInfo.Get(ActiveOID, false); if (item != null) { List = Preguntas.GetPreguntasModulo(item.OidModulo); _filter_results = Preguntas.SortList(List, SortProperty, SortDirection); //ApplyFilter(); } else { MessageBox.Show("No se ha podido cargar la pregunta seleccionada"); } } Pregunta pregunta = List.GetItem(oid); if (pregunta.Reservada) { MessageBox.Show("No se puede eliminar una pregunta incluída en un examen" + Environment.NewLine + "que aún no se ha celebrado."); } else { //Pregunta.Delete(oid); List.Remove(pregunta); _action_result = DialogResult.OK; ExecuteAction(molAction.FilterAll); } } catch (DataPortalException ex) { MessageBox.Show(iQExceptionHandler.GetiQException(ex).Message); } //} }
/// <summary> /// Obtiene una lista paginada de Pregunta /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <PreguntaInfo> ObtenerPorPagina(PaginacionInfo pagina, PreguntaInfo filtro) { try { Logger.Info(); return(preguntaDALORM.ObtenerPorPagina(pagina, filtro)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
protected override void SetPreguntaAnterior() { int index = ListaInfo.IndexOf(_pregunta_info); if (index > 0) { _pregunta_info = PreguntaInfo.Get(ListaInfo[index - 1].Oid, true); //Datos.DataSource = _pregunta_info; //RellenaHistoria(); //Datos_Respuestas.DataSource = _pregunta_info.Respuestas; //Images.Show(_pregunta_info.Imagen, Principal.FOTOS_PREGUNTAS_PATH, Imagen_PictureBox); RefreshMainData(); } SetDependentControlSource(Modulo_CB.Name); if (_pregunta_info.Tipo == "Desarrollo") { Respuestas_Grid.Visible = false; Respuestas_Grid.Enabled = false; Respuestas_BT.Visible = false; Respuestas_BT.Enabled = false; ModeloRespuesta_TB.Visible = true; ModeloRespuesta_TB.Enabled = false; ModeloRespuesta_LB.Visible = true; ModeloRespuesta_LB.Enabled = true; ModeloRespuesta_BT.Visible = true; ModeloRespuesta_BT.Enabled = false; ModeloRespuestaView_BT.Visible = true; ModeloRespuestaView_BT.Enabled = true; } else { ModeloRespuesta_TB.Visible = false; ModeloRespuesta_TB.Enabled = false; ModeloRespuesta_LB.Visible = false; ModeloRespuesta_LB.Enabled = false; ModeloRespuesta_BT.Visible = false; ModeloRespuesta_BT.Enabled = false; ModeloRespuestaView_BT.Visible = false; ModeloRespuestaView_BT.Enabled = false; Respuestas_Grid.Visible = true; Respuestas_Grid.Enabled = true; Respuestas_BT.Visible = true; Respuestas_BT.Enabled = true; } }
/// <summary> /// Obtiene la lista para mostrar en el grid /// </summary> private void ObtenerListaPregunta(int inicio, int limite) { try { var preguntaPL = new PreguntaBL(); PreguntaInfo filtros = ObtenerFiltros(); if (ucPaginacion.ContextoAnterior != null) { bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior); if (!contextosIguales) { ucPaginacion.Inicio = 1; inicio = 1; } } var pagina = new PaginacionInfo { Inicio = inicio, Limite = limite }; ResultadoInfo <PreguntaInfo> resultadoInfo = preguntaPL.ObtenerPorPagina(pagina, filtros); if (resultadoInfo != null && resultadoInfo.Lista != null && resultadoInfo.Lista.Count > 0) { gridDatos.ItemsSource = resultadoInfo.Lista; ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros; } else { ucPaginacion.TotalRegistros = 0; gridDatos.ItemsSource = new List <Pregunta>(); } } catch (ExcepcionGenerica) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Pregunta_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error); } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.Pregunta_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error); } }
protected override void CellContentClick(int column, int row) { switch (Preguntas_Grid.Columns[column].Name) { case "Ver_BT": { string memo = _entity.MemoPreguntas; if (memo != string.Empty) { memo = memo.Substring(0, memo.Length - 1); } memo = memo.Replace(';', ','); PreguntaList preguntas = PreguntaList.GetPreguntasByList(memo); PreguntaInfo info = (PreguntaInfo)Preguntas_Grid.Rows[row].DataBoundItem; PreguntasViewForm form = new PreguntasViewForm(info.Oid, preguntas, true); form.ShowDialog(); } break; } }
public void SetSourceData(ExamenInfo item, ModuloInfo modulo, PreguntaList preguntas) { _modulo = modulo; _submodulos = SubmoduloList.GetModuloList(_modulo.Oid, false); _temas = TemaList.GetModuloList(_modulo.Oid, false); _preguntas_modulo = preguntas; _preguntas_exameninfo = item.Preguntas; _examen = item; 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_ExamenInfo p in _preguntas_exameninfo) { 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(); }
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(); }
/// <summary> /// Constructor para editar una entidad Pregunta Existente /// </summary> /// <param name="preguntaInfo"></param> public PreguntaEdicion(PreguntaInfo preguntaInfo) { InitializeComponent(); CargaComboTipoPregunta(); Contexto = preguntaInfo; }
protected override void CellContentClick(int column, int row) { switch (Preguntas_Grid.Columns[column].Name) { case "Ordenar_BT": { OrdenarPreguntasInputForm form = new OrdenarPreguntasInputForm(true, row + 1); form.SetSourceData(Entity, Preguntas_Grid.Rows.Count); form.ShowDialog(); RellenaPreguntas(); } break; case "Ver_BT": { //Pregunta.OpenSession(); 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); } PreguntaList preguntas = PreguntaList.GetPreguntasByList(memo); PreguntaInfo info = (PreguntaInfo)Preguntas_Grid.Rows[row].DataBoundItem; PreguntasViewForm form = new PreguntasViewForm(info.Oid, preguntas, true); form.ShowDialog(); } break; case "Editar_BT": { 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); } Preguntas preguntas = Preguntas.GetPreguntasByList(memo, _entity.SessionCode); Preguntas ordenadas = Preguntas.NewList(); PreguntaInfo info = (PreguntaInfo)Preguntas_Grid.Rows[row].DataBoundItem; //se ordenan las preguntas para que se vayan mostrando en el mismo orden que en el examen foreach (Pregunta_Examen item in _entity.Pregunta_Examens) { ordenadas.AddItem(preguntas.GetItem(item.OidPregunta)); } Pregunta activa = ordenadas.GetItem(info.Oid); SortedBindingList <Pregunta> sorted = Preguntas.SortList(ordenadas, "Codigo", ListSortDirection.Ascending); PreguntasEditForm form = new PreguntasEditForm(activa, sorted, true); form.ShowDialog(); //se recarga la lista de preguntas a seleccionar para que estén actualizadas PreguntasModulo = PreguntaList.GetPreguntasModulo(_entity.OidModulo, _entity.MemoPreguntas); RellenaPreguntas(); //preguntas.CloseSession(); ordenadas.CloseSession(); } break; case "Eliminar_BT": { DialogResult result; result = MessageBox.Show("¿Está seguro que desea eliminar la pregunta seleccionada?", "Aviso", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //string memo_preguntas = Entity.MemoPreguntas; //int pos = 0; //long oid_eliminada = ((PreguntaInfo)Preguntas_Grid.Rows[row].DataBoundItem).Oid; //string[] lista = Entity.MemoPreguntas.Split(';'); //Entity.MemoPreguntas = string.Empty; //foreach (string oid in lista) //{ // try // { // long oid_pregunta = Convert.ToInt32(oid); // if (oid_pregunta != oid_eliminada) // Entity.MemoPreguntas += oid_pregunta + ";"; // else // { // Pregunta item = _preguntas.GetItem(oid_pregunta); // item.Reservada = false; // } // } // catch // { // continue; // } //} foreach (Pregunta_Examen item in Entity.Pregunta_Examens) { if (item.OidPregunta == ((PreguntaInfo)Preguntas_Grid.Rows[row].DataBoundItem).Oid) { Entity.Pregunta_Examens.Remove(item); break; } } //while (memo_preguntas != string.Empty) //{ // string pregunta; // int index = memo_preguntas.IndexOf(";"); // pregunta = memo_preguntas.Substring(0, index + 1); // memo_preguntas = memo_preguntas.Substring(index + 1); // if (pos != row) // Entity.MemoPreguntas += pregunta; // else // { // int l = pregunta.Length; // Pregunta p = _modulo.Preguntas.GetItem(Convert.ToInt64(pregunta.Substring(0, l - 1))); // p.Reservada = false; // } // pos++; //} RellenaPreguntas(); } } break; } }