/// <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);
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }