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>(); }
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(); } }