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>   Event handler. Llamada al evento asociado al botón Buscar. </summary>
        ///
        /// <remarks>   TVO Grupo DPAA2009-2010, 14/04/2010. </remarks>
        ///
        /// <exception cref="Exception">    Thrown when exception. </exception>
        ///
        /// <param name="sender">   Source of the event. </param>
        /// <param name="e">        Event information. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            MetodoBusqueda = buttonBuscar_Click;
            int idCad = 0, idTem = 0, idCal = 0;

            idCad = ObtenerIdCadena(cBBCadena);
            idTem = ObtenerIdTematica(cBBTematica);
            idCal = ObtenerIdCalif(cBBCalificacion);

            ENPrograma prog = new ENPrograma(tBBNombreProg.Text, idTem, idCal, idCad);

            DataView dvResultBusq = new DataView();

            try
            {
                if (Paginar)
                {
                    dGVResultBProg.ClearSelection();
                    // Obtenemos el tamaño de la consulta
                    TOTAL_registros = prog.obtenerTamanyoConsulta();

                    // 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 = prog.buscarPrograma(ACTUAL_registro, PAGINA_registros);
                    }
                    gbMensajes.Visible = true;
                }
                else
                {
                    dvResultBusq    = prog.buscarPrograma();
                    TOTAL_registros = dvResultBusq.Table.Rows.Count;
                    if (TOTAL_registros <= MIN_PAGINA_registros)
                    {
                        chkPaginacion.Enabled = false;
                    }
                    else
                    {
                        chkPaginacion.Enabled = true;
                    }
                }
                //Si obtengo resultados, le asigno la tabla al datagrid
                if (dvResultBusq.Count > 0)
                {
                    dGVResultBProg.DataSource = dvResultBusq;
                    darFormatoDataGrid();
                    dGVResultBProg.Visible = true;
                }
                else
                {
                    dGVResultBProg.Visible = false;
                }

                if (dvResultBusq.Count == 1)
                {
                    MensajeSistema(labelMensSistPB, "Se ha obtenido 1 resultado.", kMensajeSistema.mCORRECTO);
                }
                else
                {
                    MensajeSistema(labelMensSistPB, "Se han obtenido " + dvResultBusq.Count + " resultados.", kMensajeSistema.mCORRECTO);
                }
                gbMensajes.Visible = true;
            }
            catch (ENException enex)
            {
                if (enex.Tipo != -1)
                {
                    MensajeSistema(labelMensSistPB, enex.Message, kMensajeSistema.mADVERTENCIA);
                }

                else
                {
                    MensajeSistema(labelMensSistPB, enex.Message, kMensajeSistema.mERROR);
                }

                gbMensajes.Visible = true;
                // MessageBox.Show(enex.Message);
            }
            catch (Exception ex)
            {
                chkPaginacion.Checked = false;
                chkPaginacion_CheckedChanged((CheckBox)chkPaginacion, null);
                MensajeSistema(labelMensSistPB, "Se ha desactivado la paginación debido a que sólo hay 1 página", kMensajeSistema.mADVERTENCIA);
                chkPaginacion.Enabled = false;
            }
        }
Exemple #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Event handler. Llamada al evento asociado al hacer click sobre una celda del dataGridV </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 dGVResultBProg_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            ENPrograma programa = new ENPrograma();
            int        progNovedad = -1, progActivo = -1;

            try
            {
                if (e.RowIndex == -1)
                {
                    throw new Exception();
                }

                if (dGVResultBProg.Columns[e.ColumnIndex].Name == "btnModificar")
                {
                    //Relleno
                    cBICadena.Text       = dGVResultBProg.Rows[e.RowIndex].Cells["nomCadena"].Value.ToString();
                    cBITematica.Text     = dGVResultBProg.Rows[e.RowIndex].Cells["nomTematica"].Value.ToString();
                    cBICalificacion.Text = dGVResultBProg.Rows[e.RowIndex].Cells["nomCalif"].Value.ToString();
                    tBNombreProg.Text    = dGVResultBProg.Rows[e.RowIndex].Cells["nomProg"].Value.ToString();
                    tBDescripcion.Text   = dGVResultBProg.Rows[e.RowIndex].Cells["descProg"].Value.ToString();
                    progNovedad          = (int)dGVResultBProg.Rows[e.RowIndex].Cells["novProg"].Value;
                    progActivo           = (int)dGVResultBProg.Rows[e.RowIndex].Cells["actProg"].Value;
                    cBNovedad.Checked    = Convert.ToBoolean(progNovedad);
                    cBActProg.Checked    = Convert.ToBoolean(progNovedad);

                    dGVResultBProg.Rows[e.RowIndex].Selected = true;
                    CambiarVistaForm("modificar");
                    pestanyasSeccionBase.SelectTab(pestanyasSeccionBase.GetControl(1).Name);
                }
                else
                {
                    if (dGVResultBProg.Columns[e.ColumnIndex].Name == "btnEliminar")
                    {
                        int    id         = int.Parse(dGVResultBProg.Rows[e.RowIndex].Cells["idProg"].Value.ToString());
                        string nombreProg = dGVResultBProg.Rows[e.RowIndex].Cells["nomProg"].Value.ToString();
                        string nombreCad  = dGVResultBProg.Rows[e.RowIndex].Cells["nomCadena"].Value.ToString();
                        if (MessageBox.Show("¿Desea eliminar el registro con Nombre " + nombreProg + " ( " + nombreCad + ")?", "TEVEO :: Aplicación de gestión", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        {
                            bool eliminado = false;

                            ENPrograma programaElim = new ENPrograma();
                            programaElim.Id_Programa = id;
                            eliminado = programaElim.eliminarPrograma(id);

                            if (eliminado)
                            {
                                CambiarVistaForm("insertar");
                                MensajeSistema(labelMensSistPB, "Registro eliminado correctamente.", kMensajeSistema.mCORRECTO);
                                gbMensajes.Visible = true;
                                buttonBuscar_Click((object)buttonBuscar, null);
                            }
                        }
                    }
                    else
                    {
                        if (dGVResultBProg.Columns[e.ColumnIndex].Name == "descProg")
                        {
                            programa.Descripcion = dGVResultBProg.Rows[e.RowIndex].Cells["descProg"].Value.ToString();
                            MessageBox.Show(programa.Descripcion, "TEVEO :: Aplicación de gestión", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        }
                    }
                }
            }//cierra try
            catch (ENException enex)
            {
                MensajeSistema(labelMensSistPB, enex.Message, kMensajeSistema.mERROR);
                gbMensajes.Visible = true;
            }
            catch (Exception)
            {
            }
        }
Exemple #4
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>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        //------------------------------------------------------Insertando
        private void buttonInsertarProg_Click(object sender, EventArgs e)
        {
            int insertadas = 0;
            int idCad = 0, idTem = 0, idCal = 0, idProg = 0;

            idCad = ObtenerIdCadena(cBICadena);
            idTem = ObtenerIdTematica(cBITematica);
            idCal = ObtenerIdCalif(cBICalificacion);
            ENPrograma programa = new ENPrograma(idCad, idTem, idCal, tBNombreProg.Text, tBDescripcion.Text, cBActProg.Checked, cBNovedad.Checked);

            try
            {
                TbSeccionBaseErrorProvider.Dispose();
                if (buttonInsertarProg.Text == "Insertar")
                {
                    if (ValidaFormulario(tBNombreProg.Text, cBITematica.Text, cBICalificacion.Text, cBICadena.Text, tBDescripcion.Text, cBActProg.Checked, cBNovedad.Checked))
                    {
                        DataView   dvProgramaExiste = new DataView();
                        ENPrograma programaExiste   = new ENPrograma(tBNombreProg.Text);
                        //Se busca un programa con ese nombre y cualquier tipo
                        dvProgramaExiste = programaExiste.buscarPrograma();

                        if (dvProgramaExiste.Count == 0) //No existe el programa que queremos insertar
                        {
                            insertadas = programa.InsertarPrograma();

                            if (insertadas > 0)
                            {
                                MensajeSistema(labelMensajeSist, "Inserción correcta", kMensajeSistema.mCORRECTO);
                            }
                            else
                            {
                                MensajeSistema(labelMensajeSist, "ERROR: La inserción no se pudo realizar.", kMensajeSistema.mERROR);
                            }
                        }
                        else
                        {
                            MensajeSistema(labelMensajeSist, "ERROR: El programa ya existe.", kMensajeSistema.mERROR);
                        }

                        gBMensajesSist.Visible = true;
                    }
                    else
                    {
                        gBMensajesSist.Visible = false;
                    }
                }
                else
                {
                    if (buttonInsertarProg.Text == "Modificar")
                    {
                        int id = int.Parse(dGVResultBProg.SelectedRows[0].Cells["idProg"].Value.ToString());
                        programa.Id_Programa = id;
                        int modificadas = programa.modificarPrograma();

                        if (modificadas > 0)
                        {
                            MensajeSistema(labelMensajeSist, "Modificación correcta", kMensajeSistema.mCORRECTO);
                            buttonBuscar_Click((object)buttonBuscar, null);
                        }
                        else
                        {
                            MensajeSistema(labelMensajeSist, "ERROR: La modificación no se pudo realizar.", kMensajeSistema.mERROR);
                        }
                        gBMensajesSist.Visible = true;
                    }
                }
            }
            catch (ENException enex)
            {
                MensajeSistema(labelMensajeSist, enex.Message, kMensajeSistema.mERROR);
                gBMensajesSist.Visible = true;
            }
        }
Exemple #5
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);
                }
            }
        }