コード例 #1
0
        private void DgvVisibilidad_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Only works when user clicks one of the buttons (column index 5 and 6)
            if (e.ColumnIndex < 6 || e.RowIndex == -1)
            {
                return;
            }

            var selectedVisibility = _visibilities.Find(visibility => visibility.ID == (int)DgvVisibilidad.Rows[e.RowIndex].Cells[0].Value);

            if (selectedVisibility != null)
            {
                //El usuario tocó el botón de modificar
                if (e.ColumnIndex == 6)
                {
                    var insertUpdateVisibility = new FrmABMInsertUpdateVisibilidad(selectedVisibility);
                    insertUpdateVisibility.ShowDialog();

                    //Si modificó satisfactoriamante la visibilidad, actualizo la grilla
                    if (insertUpdateVisibility.CompleteAction)
                    {
                        RefreshSources(null);
                    }
                }
                else
                {
                    //El usuario tocó el botón de eliminar

                    //El rol seleccionado ya se encuentra eliminado (baja lógica)
                    if (!selectedVisibility.Activo)
                    {
                        MessageBox.Show("No se puede eliminar la funcionalidad ya que ya se encuentra desactivada", "Atencion");
                        return;
                    }

                    var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere desactivar la visibilidad {0}?", selectedVisibility.Descripcion), "Atención", MessageBoxButtons.YesNo);
                    if (dialogAnswer == DialogResult.Yes)
                    {
                        selectedVisibility.Activo = false;
                        VisibilidadPersistance.Update(selectedVisibility);

                        //Vuelvo a cargar la lista de roles
                        RefreshSources(null);
                    }
                }
            }
        }
コード例 #2
0
        private void LblGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                #region Validations

                var exceptionMessage = string.Empty;

                if (TypesHelper.IsEmpty(TxtDescripcion.Text))
                {
                    exceptionMessage += Environment.NewLine + "La descripción de la visibilidad no puede ser vacía.";
                }

                if (TypesHelper.IsEmpty(TxtDuracion.Text))
                {
                    exceptionMessage += Environment.NewLine + "La duración de la visibilidad no puede ser vacía.";
                }

                if (!TypesHelper.IsNumeric(TxtDuracion.Text))
                {
                    exceptionMessage += Environment.NewLine + "La duración de la visibilidad debe ser numérica.";
                }

                if (TypesHelper.IsEmpty(TxtPorcentajeVenta.Text))
                {
                    exceptionMessage += Environment.NewLine + "El porcentaje de la venta de la visibilidad no puede ser vacío.";
                }

                if (!TypesHelper.IsDecimal(TxtPorcentajeVenta.Text))
                {
                    exceptionMessage += Environment.NewLine + "El porcentaje de la venta de la visibilidad debe ser decimal (o numérico).";
                }

                if (TypesHelper.IsEmpty(TxtPrecioPublicar.Text))
                {
                    exceptionMessage += Environment.NewLine + "El precio por publicar de la visibilidad no puede ser vacío.";
                }

                if (!TypesHelper.IsDecimal(TxtPrecioPublicar.Text))
                {
                    exceptionMessage += Environment.NewLine + "El precio por publicar de la visibilidad debe ser decimal (o numérico).";
                }

                if (!TypesHelper.IsEmpty(exceptionMessage))
                {
                    throw new Exception(exceptionMessage);
                }

                #endregion

                if (insertMode)
                {
                    var filters = new VisibilidadFilters {
                        Descripcion = TxtDescripcion.Text
                    };

                    //Valido que no exista un rol con la descripcion informada
                    if (VisibilidadPersistance.GetAllByParameters(filters).Count > 0)
                    {
                        throw new Exception("Ya existe una visibilidad con la descripcion informada.");
                    }

                    #region Inserto la nueva visibilidad

                    var visibility = new Visibilidad();
                    visibility.Descripcion     = TxtDescripcion.Text;
                    visibility.Duracion        = Convert.ToInt32(TxtDuracion.Text);
                    visibility.PrecioPublicar  = Convert.ToDouble(TxtPrecioPublicar.Text);
                    visibility.PorcentajeVenta = Convert.ToDouble(TxtPorcentajeVenta.Text);
                    visibility.Activo          = ChkActivo.Checked;

                    var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar la nueva visibilidad?", "Atencion", MessageBoxButtons.YesNo);
                    if (dialogAnswer == DialogResult.Yes)
                    {
                        if (VisibilidadPersistance.Insert(visibility) == 1)
                        {
                            MessageBox.Show("Se inserto satisfactoriamente la nueva visibilidad", "Atencion");
                            CompleteAction = true;
                            Close();
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Modifico una visibilidad existente

                    if (OldVisibilityActive && !ChkActivo.Checked)
                    {
                        //Si cambió el valor de 'Activo' y existen publicaciones con dicha visibilidad, arrojo una excepcion
                        if (PublicacionPersistance.GetAllByVisibility(CurrentVisibility.ID).Count() > 0)
                        {
                            throw new Exception("No se puede modificar la visibilidad ya que existen publicaciones con dicho valor.");
                        }
                    }

                    CurrentVisibility.Descripcion     = TxtDescripcion.Text;
                    CurrentVisibility.Duracion        = Convert.ToInt32(TxtDuracion.Text);
                    CurrentVisibility.PrecioPublicar  = Convert.ToDouble(TxtPrecioPublicar.Text);
                    CurrentVisibility.PorcentajeVenta = Convert.ToDouble(TxtPorcentajeVenta.Text);
                    CurrentVisibility.Activo          = ChkActivo.Checked;

                    var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere modificar la visibilidad {0}?", CurrentVisibility.Descripcion), "Atencion", MessageBoxButtons.YesNo);
                    if (dialogAnswer == DialogResult.Yes)
                    {
                        //Modifico exitosamente si la cantidad de registros afectados es 1
                        if (VisibilidadPersistance.Update(CurrentVisibility) == 1)
                        {
                            MessageBox.Show("Se modifico satisfactoriamente la visibilidad", "Atencion");
                            CompleteAction = true;
                            Close();
                        }
                    }

                    #endregion
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Atención");
                Close();
            }
        }