Beispiel #1
0
 /// <summary>
 ///     Elimina un banner TXT del repositorio.
 /// </summary>
 /// <param name="pBanner">Banner TXT a eliminar.</param>
 public void Eliminar(BannerTXT pBannerTXT)
 {
     BannerTXT mBannerTXT = iUnidadDeTrabajo.RepositorioBannerTXT.ObtenerPorId(pBannerTXT.BannerTXTId);
     iUnidadDeTrabajo.RepositorioBannerTXT.Eliminar(mBannerTXT);
     iUnidadDeTrabajo.Guardar();
 }
Beispiel #2
0
 /// <summary>
 ///     Inserta un banner TXT en el repositorio.
 /// </summary>
 /// <param name="pBanner">Banner TXT a insertar.</param>
 public void Insertar(BannerTXT pBannerTXT)
 {
     iUnidadDeTrabajo.RepositorioBannerTXT.Insertar(pBannerTXT);
     iUnidadDeTrabajo.Guardar();
 }
Beispiel #3
0
 /// <summary>
 ///     Modificar un banner TXT en el repositorio.
 /// </summary>
 /// <param name="pBanner">Banner TXT a modificar.</param>
 public void Modificar(BannerTXT pBannerTXT)
 {
     iUnidadDeTrabajo.RepositorioBannerTXT.Modificar(pBannerTXT);
     iUnidadDeTrabajo.Guardar();
 }
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            Banner mBanner = new Banner(new BannerTXT(""), TipoBanner.TXT)
            {
                FechaInicio = dtpFechaInicio.Value.Date,
                HoraInicio = dtpHoraInicio.Value.TimeOfDay,
                FechaFin = dtpFechaFin.Value.Date,
                HoraFin = dtpHoraFin.Value.TimeOfDay
            };

            if (txtNombreBanner.Text == "")
            {
                Utilidades.MensajeError(this, "¡Atención!", "Debe ingresar un nombre para el banner.");
                txtNombreBanner.Focus();
            }
            else if (dtpHoraFin.Value <= dtpHoraInicio.Value)
            {
                Utilidades.MensajeError(this, "¡Atención!", "La hora en la que termina el banner debe ser posterior a la de inicio.");
                dtpHoraFin.Focus();
            }
            else if (radioTextoFijo.Checked && txtTextoFijo.Text == "")
            {
                Utilidades.MensajeError(this, "¡Atención!", "Debe ingresar algún texto para mostrar en el banner.");
                txtTextoFijo.Focus();
            }
            else if (radioFuenteRSS.Checked && comboFuenteRSS.SelectedItem == null)
            {
                Utilidades.MensajeError(this, "¡Atención!", "Debe seleccionar alguna fuente RSS para mostrar en el banner.");
                comboFuenteRSS.Focus();
            }
            else if (iAgregar && iCtrlBanner.ExisteBannerEnHorario(mBanner))
            {
                Utilidades.MensajeError(this, "¡Atención!", "Existe otro banner en ese horario. Elija otro momento del día en el cual mostrarlo.");
                dtpHoraInicio.Focus();
            }
            else
            {

                List<Banner> mListaSolapamientos = null;
                int mSolapamientos = 0;
                if (!iAgregar)//Para optimizar tiempo, solo se consulta esto si se modifica
                {
                    mListaSolapamientos = iCtrlBanner.ListaBannersEnHorario(mBanner);
                    mSolapamientos = mListaSolapamientos.Count;
                }

                if ( ((iBanner == null) ? false: iBanner.Activo) && //Si no esta activo no se verifica los solapamientos, se lo haran en el formBuscar al querer activar
                     (
                        (!iAgregar && mSolapamientos > 1) ||
                        (!iAgregar && mSolapamientos == 1 && iBanner.Id != mListaSolapamientos.ElementAt(0).Id)
                     )
                   )
                {
                    Utilidades.MensajeError(this, "¡Atención!", "Existe otro banner en ese horario. Elija otro momento del día en el cual mostrarlo.");
                    dtpHoraInicio.Focus();
                }
                else
                {
                    try
                    {
                        if (radioTextoFijo.Checked)
                        {
                            if (iAgregar)//Se esta agregando un Banner
                            {
                                BannerTXT iBtxt = new BannerTXT(txtTextoFijo.Text);
                                iCtrlBannerTXT.Insertar(iBtxt);
                                iBanner = new Banner(iBtxt, TipoBanner.TXT);
                            }
                            else//Se esta modificando un BRSS
                            {
                                //Solo borramos la fuente si es TXT anteriormente y el texto de esta es distinto al que se desea actualmente,
                                //ya que unicamente los bTXT son usados por el banner que la crea
                                if (iBanner.Tipo == TipoBanner.TXT && iBanner.Fuente.Proximo() != txtTextoFijo.Text)
                                    iCtrlBannerTXT.Eliminar((BannerTXT)iBanner.Fuente);

                                BannerTXT iBtxt = new BannerTXT(txtTextoFijo.Text);
                                iCtrlBannerTXT.Insertar(iBtxt);
                                iBanner.CambiarTipo(iBtxt, TipoBanner.TXT);

                            }
                        }
                        else if (radioFuenteRSS.Checked)
                        {
                            if (iAgregar)//Se esta agregando un Banner
                                iBanner = new Banner((BannerRSS)comboFuenteRSS.SelectedItem, TipoBanner.RSS);
                            else
                            {
                                //Solo borramos la fuente si es TXT ya que unicamente la usa el banner que la crea
                                if (iBanner.Tipo == TipoBanner.TXT)
                                    iCtrlBannerTXT.Eliminar((BannerTXT)iBanner.Fuente);

                                iBanner.CambiarTipo((BannerRSS)comboFuenteRSS.SelectedItem, TipoBanner.RSS);
                            }
                        }

                        iBanner.Nombre = txtNombreBanner.Text;
                        iBanner.IntervaloEnSeg = (tbarIntervalo.Value); // Se hace el cast porque se sabe que es > 0.
                    
                        iBanner.FechaInicio = dtpFechaInicio.Value.Date;
                        iBanner.FechaFin = dtpFechaFin.Value.Date;
                        iBanner.HoraInicio = dtpHoraInicio.Value.TimeOfDay;
                        iBanner.HoraFin = dtpHoraFin.Value.TimeOfDay;

                        if (iAgregar) //Agregar.
                        {
                            iBanner.Activo = true; //Siempre al agregarse se lo considera activo

                            //Forma encontrada para guardar los banner asociandolos al usuario
                            iCtrlUsuario.UsuarioLogueado.ListaBanner.Add(iBanner);
                            iCtrlUsuario.Modificar(iCtrlUsuario.UsuarioLogueado);
                            iLogger.Info("Banner insertado en el repositorio.");

                            Utilidades.MensajeExito(this, "¡Perfecto!", "Banner agregado correctamente.");
                        }
                        else//Modificar
                        {
                            iCtrlBanner.Modificar(iBanner);
                            iLogger.Info("Banner insertado en el repositorio.");

                            Utilidades.MensajeExito(this, "¡Perfecto!", "Banner modificado correctamente.");
                        }

                        this.Close();
                    }
                    catch (Exception ex)
                    { 
                        iLogger.Error(ex.Source + ": " + ex.Message);
                        Utilidades.MensajeError(this, "¡Error!", "Ocurrió un error inesperado.");
                    }                
                }
            }//else
        }