Exemple #1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Insertar emisiones. </summary>
        ///
        /// <remarks>   Una vez se tiene la lista de emisiones ordenada y con la duración asignada, se procede a
        /// insertar en la BD, la información leída.</remarks>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        private void insertarEmisiones()
        {
            etRespuesta.Clear();
            string infoLectura = "Leyendo lista de Emisiones...";

            MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);

            if (listaEmisionCompleta.Count > 0)
            {
                MensajeSistema(etInfoXML, "Actualizando la Base de Datos, no interrumpa este proceso...", kMensajeSistema.mADVERTENCIA);
                gbInfoXML.Visible = true;

                foreach (ENEmision emision in listaEmisionCompleta)
                {
                    try
                    {
                        emision.insertarEmision();

                        DataView   dv = new DataView();
                        ENPrograma p  = new ENPrograma();
                        ENCadena   c  = new ENCadena();

                        // p.Id_Programa = emision.Id_programa;

                        // dv = p.buscarPrograma(

                        //c.Id = emision.Id_cadena;


                        infoLectura = etRespuesta.Text + "\nInsertada emisión: " + emision.Id_programa + "(" + emision.Id_cadena + "): [" + emision.FechaHoraInicio.ToShortDateString() + "]";
                        MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
                    }
                    catch (ENException enex)
                    {
                        infoLectura = etRespuesta.Text + "\nFranja ocupada: " + emision.Id_programa + "(" + emision.Id_cadena + "): [" + emision.FechaHoraInicio.ToShortDateString() + "]";
                        MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
                    }
                }
            }
            else
            {
                if (MessageBox.Show("Debe generar un fichero xml. ¿Desea hacerlo?", "TEVEO :: Aplicación de gestión", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    btnGenerarXML_Click((Button)btnCarga, null);
                }
                else
                {
                    MensajeSistema(etInfoXML, "Debe generar un documento XML", kMensajeSistema.mERROR);
                    gbInfoXML.Visible = true;
                }
            }
            MensajeSistema(etInfoXML, "Proceso finalizado", kMensajeSistema.mCORRECTO);
            gbInfoXML.Visible = true;
        }
Exemple #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Inicializador del objeto. </summary>
        ///
        /// <remarks>   TVO DPAA 2009-2010. </remarks>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        override public void Init()
        {
            base.Init();
            ENCadena cad = new ENCadena();

            TbSeccionBaseErrorProvider.Dispose();
            cBTipo.DataSource     = cad.ObtenerTiposCadenas();
            cBTipoBusq.DataSource = cad.ObtenerTiposCadenas();
            //SCambiarVistaForm("defecto");
            // btnLimpiar_Click((object)btnLimpiar, null);
            //---------------------cambios paginación--------------------- p2
            MetodoBusqueda         = btnBuscar_Click;
            gbMensajesSist.Visible = false;
            // gbInfoCON.Visible = false;
            gbMensajes.Visible     = false;
            dGRbuscCanales.Visible = false;
        }
Exemple #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Método utilizado para rellenar los  comboBoxes, cadenas, temáticas y calificaciones. </summary>
        ///
        /// <remarks>   TVO DPAA 2009-2010. </remarks>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        //Rellenar Combobox
        public void RellenarComboBox()
        {
            try
            {
                ENCadena cadenas = new ENCadena();
                bool     buscar = true, insertar = false;

                //Se rellena el combobox de cadenas
                if (buscar)
                {
                    cBBCadena.DataSource    = cadenas.ObtenerListaCadenas(buscar);
                    cBBCadena.DisplayMember = "nombre";

                    cBBTematica.DataSource    = cadenas.ObtenerListaTematicas(buscar);
                    cBBTematica.DisplayMember = "nombre";

                    cBBCalificacion.DataSource    = cadenas.ObtenerListaCalificacion(buscar);
                    cBBCalificacion.DisplayMember = "nombre";
                }
                if (!insertar)
                {
                    cBICadena.DataSource    = cadenas.ObtenerListaCadenas(insertar);
                    cBICadena.DisplayMember = "nombre";

                    cBITematica.DataSource    = cadenas.ObtenerListaTematicas(insertar);
                    cBITematica.DisplayMember = "nombre";

                    cBICalificacion.DataSource    = cadenas.ObtenerListaCalificacion(insertar);
                    cBICalificacion.DisplayMember = "nombre";
                }
            }
            catch (ENException enex)
            {
                MensajeSistema(labelMensSistPB, enex.Message, kMensajeSistema.mERROR);
                gbMensajes.Visible = true;
            }
        }
Exemple #4
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Event handler. Llamada al evento asociado a la imagen de búsqueda. </summary>
        ///
        /// <remarks>   TVO DPAA 2009-2010. </remarks>
        ///
        /// <exception cref="Exception">    Thrown when exception. </exception>
        ///
        /// <param name="sender">   Source of the event. </param>
        /// <param name="e">        Event information. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        override public void imgBusquedaRapida_Click(object sender, EventArgs e)
        {
            MetodoBusqueda = imgBusquedaRapida_Click;
            //No compruebo validación campos porq lo hago en el método del evento leave
            ENCadena cadenaBuscaRap = new ENCadena();
            DataView dvResultBusq   = new DataView();

            base.imgBusquedaRapida_Click(sender, e);

            try
            {
                gbMensajesSist.Visible = true;
                if (Paginar)
                {
                    // Obtenemos el tamaño de la consulta

                    TOTAL_registros = cadenaBuscaRap.obtenerTamanyoConsulta(tbBusquedaRapida.Text);

                    // Si el total de filas es inferior al número de resgistros por página, se desactiva la paginación
                    if (TOTAL_registros <= MIN_PAGINA_registros)
                    {
                        throw new Exception("Excepción de paginación");
                    }
                    else
                    {
                        // Si el total de filas obtenidas es menos que el registro que estabamos mostrando -> actualizamos el registro actual
                        if (esDesbordamientoPagina(ACTUAL_registro))
                        {
                            ACTUAL_registro = TOTAL_registros - (TOTAL_registros % PAGINA_registros) + 1;
                        }
                        else if (esUltimaPagina(ACTUAL_registro))
                        {
                            btnPaginaSiguiente.Visible = false;
                            btnPaginaUltima.Visible    = false;
                        }
                        else
                        {
                            btnPaginaSiguiente.Visible = true;
                            btnPaginaUltima.Visible    = true;
                        }
                        MensajePaginacion(etInfoPAG, getNumPaginaActual(ACTUAL_registro), getNumPaginasTotales());
                        dvResultBusq = cadenaBuscaRap.buscarCadena(tbBusquedaRapida.Text, ACTUAL_registro, PAGINA_registros);
                    }
                }
                else
                {
                    dvResultBusq    = cadenaBuscaRap.buscarCadena(tbBusquedaRapida.Text);
                    TOTAL_registros = dvResultBusq.Table.Rows.Count;
                    if (TOTAL_registros <= MIN_PAGINA_registros)
                    {
                        chkPaginacion.Enabled = false;
                    }
                    else
                    {
                        chkPaginacion.Enabled = true;
                    }
                }
                if (dvResultBusq.Count > 0)
                {
                    dGRbuscCanales.DataSource = dvResultBusq;
                    darFormatoDataGrid();
                    dGRbuscCanales.Visible = true;
                }
                else
                {
                    dGRbuscCanales.Visible = false;
                }
                if (dvResultBusq.Count == 1)
                {
                    MensajeSistema(labelMensajesSist, "Se ha obtenido 1 resultado.", kMensajeSistema.mCORRECTO);
                }
                else
                {
                    MensajeSistema(labelMensajesSist, "Se han obtenido " + dvResultBusq.Count + " resultados.", kMensajeSistema.mCORRECTO);
                }
            }
            catch (ENException enex)
            {
                if (enex.Tipo != -1)
                {
                    MensajeSistema(labelMensajesSist, enex.Message, kMensajeSistema.mADVERTENCIA);
                }
                else
                {
                    MensajeSistema(labelMensajesSist, enex.Message, kMensajeSistema.mERROR);
                }

                gbMensajesSist.Visible = true;
            }
            catch (Exception ex)
            {
                chkPaginacion.Checked = false;
                chkPaginacion_CheckedChanged((CheckBox)chkPaginacion, null);
                MensajeSistema(labelMensajesSist, "Se ha desactivado la paginación debido a que sólo hay 1 página", kMensajeSistema.mADVERTENCIA);
                chkPaginacion.Enabled = false;
            }
        }
Exemple #5
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Event handler. Llamada al evento asociado al datagridview (dGRbuscCanales para las celdas del dgv). </summary>
        ///
        /// <remarks>   TVO DPAA 2009-2010. </remarks>
        ///
        /// <exception cref="Exception">    Thrown when exception. </exception>
        ///
        /// <param name="sender">   Source of the event. </param>
        /// <param name="e">        Data grid view cell event information. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        private void dGRbuscCanales_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            ENCadena cadena         = new ENCadena();
            string   cadenaActivada = "";
            DataView dvResultBusq   = new DataView();//Para actualizar dgv

            //llamar buscar
            dvResultBusq = cadena.buscarCadena(tBNombreBusq.Text, cBTipoBusq.Text);
            dGRbuscCanales.DataSource = dvResultBusq;
            darFormatoDataGrid();
            try
            {
                if (e.RowIndex == -1)
                {
                    throw new Exception();
                }

                if (dGRbuscCanales.Columns[e.ColumnIndex].Name == "btnModificar")
                {
                    // MessageBox.Show(dGRbuscCanales.Rows[e.RowIndex].Cells["nombre"].ToString());
                    tBNombre.Text  = dGRbuscCanales.Rows[e.RowIndex].Cells["nombre"].Value.ToString();
                    cBTipo.Text    = dGRbuscCanales.Rows[e.RowIndex].Cells["tipo"].Value.ToString();
                    cadenaActivada = dGRbuscCanales.Rows[e.RowIndex].Cells["activo"].Value.ToString();
                    //Llama a una función auxiliar que me devuelve un bool (true= cBActivado || false= CBNoActivado)
                    cBActivar.Checked = ActivarCheckBox(cadenaActivada);

                    //Selecciono la fila en la que voy a querer realizar la modificación.
                    dGRbuscCanales.Rows[e.RowIndex].Selected = true;
                    CambiarVistaForm("modificar");
                    pestanyasSeccionBase.SelectTab(pestanyasSeccionBase.GetControl(1).Name);
                }
                else
                {
                    if (dGRbuscCanales.Columns[e.ColumnIndex].Name == "btnEliminar")
                    {
                        //selecciono fila eliminar
                        dGRbuscCanales.Rows[e.RowIndex].Selected = true;
                        int    idC    = int.Parse(dGRbuscCanales.SelectedRows[0].Cells["id"].Value.ToString());
                        string nombre = dGRbuscCanales.Rows[e.RowIndex].Cells["nombre"].Value.ToString();

                        if (MessageBox.Show("¿Desea eliminar el registro con Nombre: " + nombre + "?", "TEVEO :: Aplicación de gestión", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            bool eliminado = false;

                            eliminado = cadena.eliminarCadena(idC);

                            if (eliminado)
                            {
                                CambiarVistaForm("defecto");
                                MensajeSistema(labelMensajesSist, "Registro eliminado correctamente.", kMensajeSistema.mCORRECTO);
                                gbMensajesSist.Visible = true;
                                btnBuscar_Click((object)btnBuscar, null);
                            }
                        }
                    }
                }
            }
            catch (ENException enex)
            {
                MensajeSistema(labelMensajesSist, enex.Message, kMensajeSistema.mERROR);
                gbMensajesSist.Visible = true;
            }
            catch (Exception ex)
            {}
        }
Exemple #6
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Event handler. Llamada al evento asociado al botón Insertar. </summary>
        ///
        /// <remarks>   TVO DPAA 2009-2010. </remarks>
        ///
        /// <param name="sender">   Source of the event. </param>
        /// <param name="e">        Event information. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        private void buttonInsertarC_Click(object sender, EventArgs e)
        {
            int insertadas = 0;
            int modificado = 0;

            try
            {
                TbSeccionBaseErrorProvider.Dispose();
                if (ValidaFormulario(tBNombre.Text, cBTipo.SelectedIndex) && buttonInsertarC.Text == "Insertar" && cBTipo.Text != "Todos")
                {
                    ENCadena nuevaCadena    = new ENCadena(tBNombre.Text, cBTipo.Text, cBActivar.Checked);
                    DataView dvCadenaExiste = new DataView();

                    //Se busca una cadena con ese nombre y cualquier tipo
                    dvCadenaExiste = nuevaCadena.buscarCadena(tBNombre.Text, "Todos");

                    if (dvCadenaExiste.Count == 0) //No existe la cadena que queremos insertar
                    {
                        insertadas = nuevaCadena.insertarCadena();
                    }
                    else
                    {
                        MensajeSistema(labelMensajes, "ERROR: La cadena ya existe.", kMensajeSistema.mERROR);
                    }

                    if (insertadas > 0)
                    {
                        MensajeSistema(labelMensajes, "Inserción correcta", kMensajeSistema.mCORRECTO);
                        btnBuscar_Click((object)btnBuscar, null);
                    }
                    else
                    {
                        MensajeSistema(labelMensajes, "ERROR: La inserción no se pudo realizar.", kMensajeSistema.mERROR);
                    }
                    gbMensajes.Visible = true;
                }
                else
                {
                    if (buttonInsertarC.Text == "Modificar")
                    {
                        int      idCadena  = int.Parse(dGRbuscCanales.SelectedRows[0].Cells["id"].Value.ToString());
                        ENCadena modCadena = new ENCadena(idCadena, tBNombre.Text, cBTipo.Text, cBActivar.Checked);
                        modificado = modCadena.modificarCadena();


                        if (modificado > 0)
                        {
                            MensajeSistema(labelMensajes, "Modificación correcta", kMensajeSistema.mCORRECTO);
                            btnBuscar_Click((object)btnBuscar, null);
                        }
                        else
                        {
                            MensajeSistema(labelMensajes, "ERROR: La modificación no se pudo realizar.", kMensajeSistema.mERROR);
                        }

                        gbMensajes.Visible = true;
                    }
                    else
                    {
                        if (buttonInsertarC.Text == "Insertar" && cBTipo.Text == "Todos")
                        {
                            TbSeccionBaseErrorProvider.SetIconAlignment(cBTipo, ErrorIconAlignment.MiddleRight);
                            TbSeccionBaseErrorProvider.SetIconPadding(cBTipo, 4);
                            TbSeccionBaseErrorProvider.SetError(cBTipo, "ERROR: No es posible insertar una cadena cuyo tipo sea Todos.");
                        }
                    }
                }
            }
            catch (ENException enex)
            {
                if (enex.Tipo != -1)
                {
                    MensajeSistema(labelMensajes, enex.Message, kMensajeSistema.mADVERTENCIA);
                }
                else
                {
                    MensajeSistema(labelMensajes, enex.Message, kMensajeSistema.mERROR);
                }

                gbMensajes.Visible = true;
            }
        }
Exemple #7
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Leer xmltv. </summary>
        ///
        /// <remarks>   Procesa el documento XML rellenando la lista List que almacena las emisiones.
        ///
        /// Las etiquetas channel, contienen información de las cadenas, mientras que la etiqueta programme sobre
        /// los programas.
        /// Una vez leído el XML, se ordena la lista usando como criterio la fecha de emisión, y, posteriormente
        /// se recorre para realizar las inserciones en la BD de forma correcta. Cada emisión debe calcular su duración con relación
        /// a la siguiente emsión dentro de la cadena.
        /// </remarks>
        ///
        /// <param name="xElem">    The x coordinate element. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void leerXMLtv(XElement xElem)
        {
            string infoLectura = "";


            infoLectura = etRespuesta.Text + "\nLeyendo XML...";
            MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
            MensajeSistema(etInfoXML, "Procesando XML...", kMensajeSistema.mCORRECTO);
            gbInfoXML.Visible = true;
            try
            {
                //La ruta del documento XML permite rutas relativas
                //respecto del ejecutable!
                int              numcad       = 0;
                int              numprog      = 0;
                Hashtable        miguiaTV     = new Hashtable();
                List <ENEmision> listaEmision = new List <ENEmision>();

                IEnumerable <XElement> ListaHijos = from el in xElem.Elements() select el;
                foreach (XElement e in ListaHijos)
                {
                    if (e.Name.LocalName == "channel")
                    {
                        IEnumerable <XElement> HijosDeChannel = from hijo in e.Elements() select hijo;
                        foreach (XElement h in HijosDeChannel)
                        {
                            if (h.Name.LocalName == "display-name")
                            {
                                ENCadena nuevo = new ENCadena(h.Value);
                                nuevo.Activo = true;
                                nuevo.Tipo   = Enum.GetName(typeof(kTipo), kTipo.Generalista);
                                // e.Attribute
                                int id = nuevo.existeNombreCadena();

                                if (id == -1) // No existe el nombre en la BD
                                {
                                    nuevo.insertarCadena();
                                    miguiaTV[e.FirstAttribute.Value] = nuevo.Id;
                                    infoLectura = etRespuesta.Text + "\nAñadido nuevo Canal: " + nuevo.Nombre;
                                    MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
                                }
                                else
                                {
                                    miguiaTV[e.FirstAttribute.Value] = id;
                                    numcad++;
                                }
                            }
                        }
                    }

                    if (e.Name.LocalName == "programme")
                    {
                        // Start
                        string start = SecurityElement.Escape(e.Attribute("start").Value);
                        // Channel
                        string channel = e.Attribute("channel").Value;

                        int    cadena = (int)miguiaTV[channel];
                        string nombre = SecurityElement.Escape(Validacion.SustituyeCaracteresRaros(e.Element("title").Value));

                        // string descripcion = xmlStringHelpers.ConvierteA_UTF8(e.Element("desc").Value);
                        string descripcion  = SecurityElement.Escape(Validacion.SustituyeCaracteresRaros(e.Element("desc").Value));
                        int    tematica     = 1;
                        int    calificacion = 1;
                        bool   novedad      = true;
                        bool   activo       = true;
                        int    id_programa  = -1;

                        ENPrograma p = new ENPrograma(cadena, tematica, calificacion, nombre, descripcion, activo, novedad);

                        if (!p.existePrograma())
                        {
                            p.InsertarPrograma();
                            id_programa = p.Id_Programa;
                            infoLectura = etRespuesta.Text + "\nAñadido nuevo Programa: " + p.Nombre;
                            MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
                            numprog++;
                        }
                        else
                        {
                            id_programa = p.ObtenerIdPrograma(0, nombre);
                        }

                        DateTimeConverter con = new DateTimeConverter();

                        string anyo    = start.Substring(0, 4);
                        string mes     = start.Substring(4, 2);
                        string dia     = start.Substring(6, 2);
                        string hora    = start.Substring(8, 2);
                        string minuto  = start.Substring(10, 2);
                        string segundo = start.Substring(12, 2);

                        DateTime  fechaHoraEmision = new DateTime(Convert.ToInt32(anyo), Convert.ToInt32(mes), Convert.ToInt32(dia), Convert.ToInt32(hora), Convert.ToInt32(minuto), Convert.ToInt32(segundo));
                        ENEmision emision          = new ENEmision(cadena, id_programa, fechaHoraEmision, 0);

                        listaEmision.Add(emision);
                    }
                }
                listaEmision.Sort(ComparaENEmisionPorFechaInicio);


                MensajeSistema(etInfoXML, "Creando estructura de datos interna...", kMensajeSistema.mADVERTENCIA);
                gbInfoXML.Visible = true;
                foreach (int id_cadena in miguiaTV.Values)
                {
                    List <ENEmision> emisionPorCadena = new List <ENEmision>();

                    ID_cadena = id_cadena;

                    emisionPorCadena = listaEmision.FindAll(ComparaENEmisionPorCadena);  //(totaller.AddBookToTotal)ComparaENEmisionPorCadena);
                    // Bucle que asigna las duraciones
                    for (int j = 0; j < emisionPorCadena.Count; j++)
                    {
                        if (j == (emisionPorCadena.Count) - 1)
                        {
                            // Ultima emision
                            emisionPorCadena[emisionPorCadena.Count - 1].Duracion = 30;
                            listaEmisionCompleta.Add(emisionPorCadena[emisionPorCadena.Count - 1]);
                        }
                        else
                        {
                            // Todas excepto la última
                            ENEmision completa = emisionPorCadena[j];

                            DateTime actual    = emisionPorCadena[j].FechaHoraInicio;
                            DateTime siguiente = emisionPorCadena[j + 1].FechaHoraInicio;

                            TimeSpan duracion = siguiente.Subtract(actual);

                            completa.Duracion = (int)Math.Ceiling(duracion.TotalMinutes);

                            listaEmisionCompleta.Add(completa);
                        }
                    }
                }

                infoLectura = etRespuesta.Text + "\nEstructura de datos interna cargada con la programación.";
                MensajeSistema(etRespuesta, infoLectura, kMensajeSistema.mCORRECTO);
                MensajeSistema(etInfoXML, "Proceso finalizado", kMensajeSistema.mCORRECTO);
                gbInfoXML.Visible = true;
            }
            catch (Exception ex)
            {
                if (MessageBox.Show("El fichero xml no está bien formado, hay que volver a generarlo. ¿Desea generar de nuevo el xml?", "TEVEO :: Aplicación de gestión", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    btnGenerarXML_Click((Button)btnCarga, null);
                }
            }
        }