public override void OpenEditForm()
 {
     try
     {
         PreguntasEditForm form = new PreguntasEditForm(ActiveItem, ActiveList, true);
         if (form.Lista != null)
         {
             AddForm(form);
         }
         List = Preguntas.GetList(false, List.SessionCode);
         RefreshSources();
         ExecuteAction(molAction.FilterAll);
     }
     catch (Csla.DataPortalException ex)
     {
         MessageBox.Show(ex.BusinessException.ToString(),
                         moleQule.Face.Resources.Labels.ERROR_TITLE,
                         MessageBoxButtons.OK,
                         MessageBoxIcon.Exclamation);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString(),
                         moleQule.Face.Resources.Labels.ERROR_TITLE,
                         MessageBoxButtons.OK,
                         MessageBoxIcon.Exclamation);
     }
 }
Ejemplo n.º 2
0
        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;
            }
        }