/// <summary> /// Borra la campaña que está actualmente seleccionado del datagridview /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBorrar_Click(object sender, EventArgs e) { try { if (dataGridViewCampanias.CurrentRow.Index != -1) { Campania mCampania = new Campania { Id = Convert.ToInt32(dataGridViewCampanias["Id", dataGridViewCampanias.CurrentRow.Index].Value) }; DialogResult mMessageBoxResultado = MessageBox.Show("¿Desea borrar la Campaña?", "Borrar Campaña", MessageBoxButtons.YesNo); if (mMessageBoxResultado == DialogResult.Yes) { string mCadena = "Se borra la campaña: Id: " + mCampania.Id; cLogger.Debug(mCadena); cFachada.DeleteCampania(mCampania); dataGridViewCampanias.DataSource = cFachada.GetAllCampania(); MessageBox.Show("La campaña se ha borrado exitosamente"); } } } catch (Exception mException) { cLogger.Debug(mException.Message); MessageBox.Show("Ocurrio un error: " + mException.Message); } }
/// <summary> /// metodo que inserta una imagen /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnInsertarImagen_Click(object sender, EventArgs e) { //se crea una nueva imagen para insertarla a traves de la fachada //se utiliza el procedimiento ImageToByteArray if (comboBoxImagen.Text == "COLOQUE AQUÍ EL NOMBRE DE LA IMAGEN") { MessageBox.Show("Por favor, elija un nombre para la imagen"); return; } Imagen mImagenAInsertar = new Imagen(); mImagenAInsertar.Hash = cFachada.ImageToByteArray(pictureBoxImagen); mImagenAInsertar.Nombre = comboBoxImagen.Text; try { string mCadena = "Se agregó la Imagen: Id " + mImagenAInsertar.Id + ", Nombre: " + mImagenAInsertar.Nombre; cLogger.Debug(mCadena); cFachada.AddImagen(mImagenAInsertar); MessageBox.Show("Se agregó correctamente la imagen."); FrmGestionImagenes_Load(sender, e); } catch (Exception mException) { cLogger.Error(mException.Message); MessageBox.Show("Ha ocurrido un error: " + mException.Message); } }
/// <summary> /// Borra el banner que está actualmente seleccionado del datagrid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBorrar_Click(object sender, EventArgs e) { try { if (dataGridViewBanners.CurrentRow.Index != -1) { Banner mBanner = new Banner { Id = Convert.ToInt32(dataGridViewBanners["Id", dataGridViewBanners.CurrentRow.Index].Value) }; DialogResult mMessageBoxResultado = MessageBox.Show("¿Desea borrar el Banner?", "Borrar Banner", MessageBoxButtons.YesNo); if (mMessageBoxResultado == DialogResult.Yes) { string mCadena = "Se borra el banner: Id: " + mBanner.Id; cLogger.Debug(mCadena); cFachada.DeleteBanner(mBanner); dataGridViewBanners.DataSource = cFachada.GetAllBanner(); MessageBox.Show("El Banner se ha borrado exitosamente"); } } } catch (Exception mException) { cLogger.Debug(mException.Message); MessageBox.Show("Ocurrio un error: " + mException.Message); } }
/// <summary> /// Busca todos los banner que se encuentran dentro del rango de fechas establecido y crea un datagridview /// marcando con rojo las horas no disponibles /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonConsultarDisponibilidad_Click(object sender, EventArgs e) { dataGridViewHorariosDisponibles.Columns.Clear(); dataGridViewHorariosDisponibles.Visible = true; if (dateTimePickerCampaniaFechaInicio.Value.Date >= DateTime.Now.Date) { //Crea el datagridview que se mostrará if (dateTimePickerCampaniaFechaInicio.Value.Date <= dateTimePickerCampaniaFechaFin.Value.Date) { DateTime mFechaInicio = dateTimePickerCampaniaFechaInicio.Value; DateTime mFechaFin = dateTimePickerCampaniaFechaFin.Value; int mCantidadColumnas = (mFechaFin - mFechaInicio).Days; DateTime mFechaAuxiliar = new DateTime(); mFechaAuxiliar = mFechaInicio; for (int i = 0; i <= mCantidadColumnas; i++) { DataGridViewColumn mColumna = new DataGridViewColumn() { Name = ((mFechaAuxiliar.Day).ToString() + "/" + (mFechaAuxiliar.Month).ToString()), Width = 40, ValueType = typeof(string), CellTemplate = new DataGridViewTextBoxCell() }; dataGridViewHorariosDisponibles.Columns.Add(mColumna); mFechaAuxiliar = mFechaAuxiliar.AddDays(1); } for (int i = 0; i < 24; i++) { DataGridViewRow fila = new DataGridViewRow(); dataGridViewHorariosDisponibles.Rows.Add(fila); dataGridViewHorariosDisponibles.Rows[i].HeaderCell.Value = ((i).ToString() + " hs."); dataGridViewHorariosDisponibles.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders); } dataGridViewHorariosDisponibles.AutoGenerateColumns = false; dataGridViewHorariosDisponibles.AutoSize = false; //Toma todas las campañas que se encuentran dentro de los dias indicados Dictionary <string, List <Campania> > mDiccionario = cFachada.AvailableTimes(dateTimePickerCampaniaFechaInicio.Value, dateTimePickerCampaniaFechaFin.Value); List <Campania> mListaCampaniasMenoresIguales = new List <Campania>(); mListaCampaniasMenoresIguales = mDiccionario["MenoresIguales"]; List <Campania> mListaCampaniasIntermedias = new List <Campania>(); mListaCampaniasIntermedias = mDiccionario["Intermedias"]; List <Campania> mListaCampaniasMayores = new List <Campania>(); mListaCampaniasMayores = mDiccionario["Mayores"]; //completa el datagridview con el color rojo en los horarios ocupados //Opción 1: int mCantidadDias = 0; foreach (Campania mCampania in mListaCampaniasMenoresIguales) { if (mCampania.FechaInicio < mFechaInicio) { mCantidadDias = (mCampania.FechaFin.Date - mFechaInicio.Date).Days; for (int i = 0; i < mCantidadDias; i++) { if (mCampania.FechaInicio.Hour > mCampania.FechaFin.Hour) { for (int j = (mCampania.FechaInicio.Hour); j < 24; j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } for (int j = 0; j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } else { for (int j = (mCampania.FechaInicio.Hour); j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } } } else { mCantidadDias = (mCampania.FechaFin.Date - mCampania.FechaInicio.Date).Days; int mDiaInicio = (mCampania.FechaInicio.Date - mFechaInicio.Date).Days; mCantidadDias = mCantidadDias + mDiaInicio; for (int i = mDiaInicio; i <= mCantidadDias; i++) { if (mCampania.FechaInicio.Hour > mCampania.FechaFin.Hour) { for (int j = (mCampania.FechaInicio.Hour); j < 24; j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } for (int j = 0; j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } else { for (int j = (mCampania.FechaInicio.Hour); j <= (mCampania.FechaFin.Hour); j++) { if (i < dataGridViewHorariosDisponibles.ColumnCount) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } } } } } //Opción 2: foreach (Campania mCampania in mListaCampaniasIntermedias) { mCantidadDias = (mCampania.FechaInicio.Date - mFechaInicio.Date).Days; for (int i = mCantidadDias; i <= mCantidadColumnas; i++) { if (mCampania.FechaInicio.Hour > mCampania.FechaFin.Hour) { for (int j = (mCampania.FechaInicio.Hour); j < 24; j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } for (int j = 0; j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } else { for (int j = (mCampania.FechaInicio.Hour); j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } } } //Opción 3: foreach (Campania mCampania in mListaCampaniasMayores) { for (int i = 0; i <= mCantidadColumnas; i++) { if (mCampania.FechaInicio.Hour > mCampania.FechaFin.Hour) { for (int j = (mCampania.FechaInicio.Hour); j < 24; j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } for (int j = 0; j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } else { for (int j = (mCampania.FechaInicio.Hour); j <= (mCampania.FechaFin.Hour); j++) { dataGridViewHorariosDisponibles[i, j].Style.BackColor = Color.Red; } } } } cLogger.Debug("Se consltó la disponibilidad horaria para Agregar Campaña"); } else { MessageBox.Show("La fecha de inicio debe ser menor a la fecha fin"); } } else { MessageBox.Show("La fecha de inicio ya ha pasado"); } }
/// <summary> /// Verifica si están todos los datos necesarios cargados y guarda el banner que se modificó /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { if (cBanner != null) { //Verifia si tiene nombre if (textBoxNombreBanner.Text == "") { throw new Exception("Falta ingresar el nombre del Banner"); } //Verifica si la hora de inicio está en el rango aceptado if ((Convert.ToInt32(comboBoxHoraInicioBanner.Text) < 0) || (Convert.ToInt32(comboBoxHoraInicioBanner.Text) > 23)) { throw new Exception("La hora de inicio ingresada no es válida"); } //Verifica si la hora de fin está en el rango aceptado if ((Convert.ToInt32(comboBoxHoraFinBanner.Text) < 0) || (Convert.ToInt32(comboBoxHoraFinBanner.Text) > 23)) { throw new Exception("La hora de fin ingresada no es válida"); } //Verifica si las fechas forman un rango aceptable if (dateTimePickerBannerFechaInicio.Value.Date < DateTime.Now.Date) { throw new Exception("No se admiten Fechas de Inicios pasadas"); } if (dateTimePickerBannerFechaFin.Value.Date < dateTimePickerBannerFechaInicio.Value.Date) { throw new Exception("La Fecha Final debe ser mayor a la Fecha de Inicio"); } //Pasa la info del datePicker y el combo a una sola variable DateTime mFechaInicio = new DateTime( dateTimePickerBannerFechaInicio.Value.Year, dateTimePickerBannerFechaInicio.Value.Month, dateTimePickerBannerFechaInicio.Value.Day, Convert.ToInt32(comboBoxHoraInicioBanner.Text), 0, 0); DateTime mFechaFin = new DateTime( dateTimePickerBannerFechaFin.Value.Year, dateTimePickerBannerFechaFin.Value.Month, dateTimePickerBannerFechaFin.Value.Day, Convert.ToInt32(comboBoxHoraFinBanner.Text), 0, 0); Banner mBanner = new Banner(); mBanner.Id = cBanner.Id; mBanner.FechaInicio = cBanner.FechaInicio; mBanner.FechaFin = cBanner.FechaFin; //Verifica si la hora seleccionada está disponible Dictionary<string, List<Banner>> mDiccionario = cFachada.AvailableTimesBanner(dateTimePickerBannerFechaInicio.Value, dateTimePickerBannerFechaFin.Value); bool mDisponible = cFachada.AvailableHoursBanner(mBanner, mDiccionario); if (!mDisponible) { throw new Exception("El horario seleccionado no está disponible"); } cBanner.Nombre = textBoxNombreBanner.Text; cBanner.FechaInicio = mFechaInicio; cBanner.FechaFin = mFechaFin; if (comboBoxTipoFuente.Text == "RSS") { FuenteRSS mFuente = new FuenteRSS { Id = Convert.ToInt32(textBoxId.Text) }; mFuente = cFachada.GetFuenteRSS(mFuente); cBanner.Fuente = mFuente; } else { FuenteTextoFijo mFuente = new FuenteTextoFijo { Id = Convert.ToInt32(textBoxId.Text) }; mFuente = cFachada.GetFuenteTXT(mFuente); cBanner.Fuente = mFuente; } DialogResult mMessageBoxResultado = MessageBox.Show("¿Desea modificar el Banner?", "Modificar Banner", MessageBoxButtons.YesNo); if (mMessageBoxResultado == DialogResult.Yes) { cFachada.UpdateBanner(cBanner); MessageBox.Show("El Banner se ha modificado con éxito"); dataGridViewBanners.DataSource = cFachada.GetAllBanner(); string mCadena = "Se modificó el Banner: Id: " + cBanner.Id + " Nombre: " + cBanner.Nombre + " Fecha y Hora de inicio: " + cBanner.FechaInicio + " Fecha y Hora de fin: " + cBanner.FechaFin + " Y la fuente; " + cBanner.Fuente.Titulo; cLogger.Debug(mCadena); } } else { throw new Exception("No hay modificaciones para guardar"); } } catch (Exception mExcepcion) { MessageBox.Show(mExcepcion.Message); cLogger.Debug(mExcepcion.Message); } }