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);
            }
            //}
        }
示例#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;
            }
        }