public static List<Visibilidad> GetAllByParametersLike(VisibilidadFilters filters)
        {
            //Obtengo la lista de visibilidades que cumplen ciertos filtros (busqueda inexacta)
            var param = new List<SPParameter>
                {
                    new SPParameter("Descripcion", filters.Descripcion ?? (object)DBNull.Value)
                };

            var sp = new StoreProcedure(DataBaseConst.Visibilidad.SPGetAllVisibilidadByParametersLike, param);

            return sp.ExecuteReader<Visibilidad>();
        }
        public static List<Visibilidad> GetAllByParameters(VisibilidadFilters filters)
        {
            //Obtengo la lista de visibilidades que cumplen ciertos filtros (busqueda exacta)
            var param = new List<SPParameter>
                {
                    new SPParameter("Descripcion", filters.Descripcion ?? (object)DBNull.Value),
                    new SPParameter("Precio_Publicar", filters.PrecioPublicar ?? (object)DBNull.Value),
                    new SPParameter("Porcentaje_Venta", filters.PorcentajeVenta ?? (object)DBNull.Value),
                    new SPParameter("Duracion", filters.Duracion ?? (object)DBNull.Value)
                };

            var sp = new StoreProcedure(DataBaseConst.Visibilidad.SPGetAllVisibilidadByParameters, param);

            return sp.ExecuteReader<Visibilidad>();
        }
Exemplo n.º 3
0
        private void LblBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                #region Validations

                var filtersSetted = false;
                var exceptionMessage = string.Empty;

                if (!TypesHelper.IsEmpty(TxtDescripcion.Text))
                    filtersSetted = true;

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

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

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

                if (!filtersSetted)
                    exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro";

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

                #endregion

                //Armo el objeto que representa a los filtros a partir de los valores de los controles
                var filters = new VisibilidadFilters
                {
                    Descripcion = (!TypesHelper.IsEmpty(TxtDescripcion.Text)) ? TxtDescripcion.Text : null,
                    PrecioPublicar = (!TypesHelper.IsEmpty(TxtPrecioPublicar.Text) && ChkBusquedaExacta.Checked) ? Convert.ToDouble(TxtPrecioPublicar.Text) : (double?)null,
                    PorcentajeVenta = (!TypesHelper.IsEmpty(TxtPorcentajeVenta.Text) && ChkBusquedaExacta.Checked) ? Convert.ToDouble(TxtPorcentajeVenta.Text) : (double?)null,
                    Duracion = (!TypesHelper.IsEmpty(TxtDuracion.Text) && ChkBusquedaExacta.Checked) ? Convert.ToInt32(TxtDuracion.Text) : (int?)null
                };

                var visibilities = (ChkBusquedaExacta.Checked) ? VisibilidadPersistance.GetAllByParameters(filters) : VisibilidadPersistance.GetAllByParametersLike(filters);

                if (visibilities == null || visibilities.Count == 0)
                    throw new Exception("No se encontraron visibilidades según los filtros informados.");

                //Cargo la grilla a partir de los registros obtenidos en la busqueda
                RefreshSources(visibilities);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Atención");
            }
        }
        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();
            }
        }