コード例 #1
0
        /*================================================================================
         * INSERTAR VALORACION
         *================================================================================*/
        /// <summary>
        /// Guarda la lista de valoraciones que se le pasa en la base de datos, actualizando las modificadas e insertando las nuevas.
        /// </summary>
        /// <param name="lista">Lista con las valoraciones a guardar.</param>
        public static void InsertarValoracion(ValoracionGrafico valoracion)
        {
            // Si la conexión no existe o la valoracion es nula, devolvemos nulo.
            if (App.Global.CadenaConexion == null || valoracion == null)
            {
                return;
            }

            string SQLInsertar = "INSERT INTO Valoraciones (IdGrafico, Inicio, Linea, Descripcion, Final, Tiempo) " +
                                 "VALUES (?, ?, ?, ?, ?, ?);";

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion))
            {
                OleDbCommand comando = new OleDbCommand(SQLInsertar, conexion);
                ValoracionGrafico.ParseToCommand(comando, valoracion);

                try {
                    //App.Global.AbrirConexion();
                    conexion.Open();
                    comando.ExecuteNonQuery();
                } catch (OleDbException ex) {
                    Utils.VerError("BdValoracionesGraficos.InsertarValoracion", ex);
                }
            }
        }
コード例 #2
0
ファイル: GestionGraficos.cs プロジェクト: ander74/Orion
        /// <summary>
        /// Devuelve el tipo de valoración que se ha detectado en el texto y modifica la valoración pasada en consecuencia al tipo devuelto.
        /// </summary>
        /// <param name="texto">Texto del que deducir la valoración. Debe estar limpio.</param>
        /// <param name="valoracion">Valoración que se modificará en función del tipo devuelto.</param>
        /// <returns>Tipo de valoración detectado.</returns>
        public static TipoValoracion ParseaTexto(string texto, ref ValoracionGrafico valoracion)
        {
            // Si la cadena está vacía, devolvemos vacío.
            if (String.IsNullOrEmpty(texto.Trim()))
            {
                return(TipoValoracion.Vacio);
            }

            // Iniciamos las variables.
            string[]       subtextos = texto.Split(' ');
            TipoValoracion resultado = TipoValoracion.Desconocido;

            // Evaluamos el primer elemento del texto.
            if (subtextos.Length > 0)
            {
                // Si el primer elemento es una hora...
                if (Utils.ParseHora(subtextos[0], out TimeSpan hora, true))
                {
                    // Guardamos la hora en la valoración.
                    valoracion.Inicio = hora;
                    // Si no es una hora...
                }
                else
                {
                    // Si empieza por Gráfico, es un inicio de gráfico.
                    if (subtextos[0].StartsWith("Grafico"))
                    {
                        // Insertamos el número de gráfico en el campo Línea de la valoración.
                        valoracion.Linea = getNumeroGrafico(texto);
                        return(TipoValoracion.InicioGrafico);
                        // Si empieza por Valoración es un final de gráfico.
                    }
                    else if (subtextos[0].StartsWith("Valoracion"))
                    {
                        // Insertamos el tiempo de valoración del gráfico en el campo Tiempo de la valoración.
                        valoracion.Tiempo = getValoracionGrafico(texto);
                        return(TipoValoracion.FinalGrafico);
                        // Si no empieza por Aldaketa, es una información
                    }
                    else if (subtextos[0].StartsWith("Aldaketa"))
                    {
                        return(TipoValoracion.Vacio);
                    }
                    else
                    {
                        valoracion.Descripcion = texto;
                        return(TipoValoracion.Informacion);
                    }
                }
            }
コード例 #3
0
ファイル: BdGraficos.cs プロジェクト: ander74/Orion
        /*================================================================================
         * GET GRÁFICOS
         *================================================================================*/
        /// <summary>
        /// Devuelve una colección con los gráficos pertenecientes a un grupo
        /// </summary>
        /// <param name="IdGrupo">Id del grupo al que pertenecen los gráficos.</param>
        /// <returns>Colección de gráficos.</returns>
        public static ObservableCollection <Grafico> getGraficos(long IdGrupo)
        {
            ObservableCollection <Grafico> lista = new ObservableCollection <Grafico>();

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion))
            {
                OleDbDataReader lector             = null;
                OleDbDataReader lectorValoraciones = null;

                try {
                    // Ejecutamos el comando y extraemos los gráficos del lector a la lista.
                    conexion.Open();
                    OleDbTransaction transaccion = conexion.BeginTransaction();

                    string       comandoSQL = "SELECT * FROM Graficos WHERE IdGrupo=? ORDER BY Numero";
                    OleDbCommand Comando    = new OleDbCommand(comandoSQL, conexion, transaccion);
                    Comando.Parameters.AddWithValue("idgrupo", IdGrupo);

                    lector = Comando.ExecuteReader();

                    while (lector.Read())
                    {
                        Grafico grafico = new Grafico(lector);
                        grafico.ListaValoraciones = new ObservableCollection <ValoracionGrafico>();
                        string       comandoSQLValoraciones = "SELECT * FROM Valoraciones WHERE IdGrafico=? ORDER BY Inicio, Id";
                        OleDbCommand ComandoValoraciones    = new OleDbCommand(comandoSQLValoraciones, conexion, transaccion);
                        ComandoValoraciones.Parameters.AddWithValue("idgrafico", grafico.Id);
                        lectorValoraciones = ComandoValoraciones.ExecuteReader();
                        while (lectorValoraciones.Read())
                        {
                            ValoracionGrafico valoracion = new ValoracionGrafico(lectorValoraciones);
                            grafico.ListaValoraciones.Add(valoracion);
                            valoracion.Nuevo      = false;
                            valoracion.Modificado = false;
                        }
                        //grafico.ListaValoraciones = BdValoracionesGraficos.getValoraciones(grafico.Id);
                        lista.Add(grafico);
                        grafico.Nuevo      = false;
                        grafico.Modificado = false;
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdGraficos.getGraficos", ex);
                } finally {
                    lector.Close();
                }
            }
            return(lista);
        }
コード例 #4
0
        /*================================================================================
         * GUARDAR VALORACIONES
         *================================================================================*/
        /// <summary>
        /// Guarda la lista de valoraciones que se le pasa en la base de datos, actualizando las modificadas e insertando las nuevas.
        /// </summary>
        /// <param name="lista">Lista con las valoraciones a guardar.</param>
        public static void GuardarValoraciones(IEnumerable <ValoracionGrafico> lista)
        {
            // Si la lista está vacía, salimos.
            if (lista == null || lista.Count() == 0)
            {
                return;
            }

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion))
            {
                string SQLInsertar = "INSERT INTO Valoraciones (IdGrafico, Inicio, Linea, Descripcion, Final, Tiempo) " +
                                     "VALUES (?, ?, ?, ?, ?, ?);";

                string SQLActualizar = "UPDATE Valoraciones SET IdGrafico=?, Inicio=?, Linea=?, Descripcion=?, " +
                                       "Final=?, Tiempo=? WHERE Id=?;";

                try {
                    foreach (ValoracionGrafico valoracion in lista)
                    {
                        if (valoracion.Nuevo)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLInsertar, conexion);
                            ValoracionGrafico.ParseToCommand(comando, valoracion);
                            if (conexion.State == System.Data.ConnectionState.Closed)
                            {
                                conexion.Open();
                            }
                            comando.ExecuteNonQuery();
                            valoracion.Nuevo      = false;
                            valoracion.Modificado = false;
                        }
                        else if (valoracion.Modificado)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLActualizar, conexion);
                            ValoracionGrafico.ParseToCommand(comando, valoracion);
                            conexion.Open();
                            comando.ExecuteNonQuery();
                            valoracion.Modificado = false;
                        }
                    }
                } catch (OleDbException ex) {
                    Utils.VerError("BdValoracionesGraficos.GuardarValoraciones", ex);
                }
            }
        }
コード例 #5
0
        /*================================================================================
         * GET VALORACIONES
         *================================================================================*/
        /// <summary>
        /// Devuelve una colección con las valoraciones pertenecientes a un gráfico
        /// </summary>
        /// <param name="IdGrafico">Id del gráfico al que pertenecen las valoraciones.</param>
        /// <returns>Colección de valoraciones.</returns>
        public static ObservableCollection <ValoracionGrafico> getValoraciones(long IdGrafico)
        {
            // Creamos la lista y el comando que extrae los gráficos.
            ObservableCollection <ValoracionGrafico> lista = new ObservableCollection <ValoracionGrafico>();

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion))
            {
                OleDbDataReader lector = null;

                // Ejecutamos el comando y extraemos los gráficos del lector a la lista.
                try {
                    if (conexion.State != System.Data.ConnectionState.Open)
                    {
                        conexion.Open();
                    }

                    string       comandoSQL = "SELECT * FROM Valoraciones WHERE IdGrafico=? ORDER BY Inicio, Id";
                    OleDbCommand Comando    = new OleDbCommand(comandoSQL, conexion);
                    Comando.Parameters.AddWithValue("idgrafico", IdGrafico);

                    lector = Comando.ExecuteReader();

                    while (lector.Read())
                    {
                        ValoracionGrafico valoracion = new ValoracionGrafico(lector);
                        lista.Add(valoracion);
                        valoracion.Nuevo      = false;
                        valoracion.Modificado = false;
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdValoracionesGraficos.GetValoraciones", ex);
                } finally {
                    lector.Close();
                }
            }
            return(lista);
        }
コード例 #6
0
        private void CrearGrupoDeWord()
        {
            // Si el archivo no existe, salimos.
            if (!File.Exists(ArchivoWord))
            {
                return;
            }

            // Creamos la aplicación de Word.
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document    wordDoc = null;
            wordApp.Visible = false;

            try {
                // Abrimos el documento de word.
                wordDoc = wordApp.Documents.Open(ArchivoWord);

                StringBuilder sb = new StringBuilder();

                foreach (Microsoft.Office.Interop.Word.Paragraph parrafo in wordDoc.Paragraphs)
                {
                    string t = parrafo.Range.Text + "\n";
                    //t.Replace("\r", "\n");
                    t = t.Replace("Balorazioa", "Final\nBalorazioa");
                    t = t.Replace("0h", "0");
                    t = t.Replace("5h", "5");
                    sb.Append(t);
                }
                string[] todo = sb.ToString().Split('\n');


                // Creamos el grupo nuevo
                if (String.IsNullOrEmpty(Notas.Trim()))
                {
                    Notas = FechaActual.ToString("dd-MM-yyyy");
                }
                int idgruponuevo = BdGruposGraficos.NuevoGrupo(FechaActual, Notas);
                // Definimos las variables a usar
                bool              EnUnGrafico        = false;
                Grafico           grafico            = new Grafico();
                ValoracionGrafico valoracionanterior = new ValoracionGrafico();
                bool              IniciaGrafico      = false;
                bool              SalirDelBucle      = false;

                // Recorremos los párrafos del documento.
                foreach (string parrafo in todo)
                {
                    ValoracionGrafico valoracion        = new ValoracionGrafico();
                    string            texto             = GestionGraficos.LimpiarTexto(parrafo);
                    GestionGraficos.TipoValoracion tipo = GestionGraficos.ParseaTexto(texto, ref valoracion);

                    switch (tipo)
                    {
                    case GestionGraficos.TipoValoracion.InicioGrafico:
                        if (EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo, texto))
                            {
                                grafico         = new Grafico();
                                grafico.IdGrupo = idgruponuevo;
                                grafico.Numero  = (int)valoracion.Linea;
                                IniciaGrafico   = true;
                                EnUnGrafico     = true;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico         = new Grafico();
                            grafico.IdGrupo = idgruponuevo;
                            grafico.Numero  = (int)valoracion.Linea;
                            if (grafico.Numero % 2 == 0)
                            {
                                grafico.Turno = 2;
                            }
                            IniciaGrafico = true;
                            EnUnGrafico   = true;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.FinalGrafico:
                        if (!EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo, texto))
                            {
                                EnUnGrafico   = false;
                                IniciaGrafico = false;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico.Final      = valoracionanterior.Inicio;
                            grafico.Valoracion = valoracion.Tiempo;
                            grafico.Recalcular();
                            // Inferimos el día de la semana a la que pertenece.
                            if (grafico.Numero >= App.Global.PorCentro.LunDel && grafico.Numero <= App.Global.PorCentro.LunAl)
                            {
                                grafico.DiaSemana = "L";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.VieDel && grafico.Numero <= App.Global.PorCentro.VieAl)
                            {
                                grafico.DiaSemana = "V";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.SabDel && grafico.Numero <= App.Global.PorCentro.SabAl)
                            {
                                grafico.DiaSemana = "S";
                            }
                            if (grafico.Numero >= App.Global.PorCentro.DomDel && grafico.Numero <= App.Global.PorCentro.DomAl)
                            {
                                grafico.DiaSemana = "F";
                            }
                            BdGraficos.InsertarGrafico(grafico);
                            IniciaGrafico = false;
                            EnUnGrafico   = false;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Completo:
                    case GestionGraficos.TipoValoracion.Parcial:
                    case GestionGraficos.TipoValoracion.ParcialCodigo:
                    case GestionGraficos.TipoValoracion.ParcialLinea:
                    case GestionGraficos.TipoValoracion.ParcialVacio:
                        if (EnUnGrafico)
                        {
                            if (IniciaGrafico)
                            {
                                grafico.Inicio = valoracion.Inicio;
                                IniciaGrafico  = false;
                            }
                            else
                            {
                                valoracionanterior.Final = valoracion.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                            valoracionanterior = valoracion;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Informacion:
                        if (EnUnGrafico)
                        {
                            if (!IniciaGrafico)
                            {
                                valoracion.Inicio = valoracionanterior.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                        }
                        break;
                    }
                    if (SalirDelBucle)
                    {
                        break;
                    }
                }
            } catch (Exception ex) {
                mensajes.VerError("VentanaNuevoGrupoVM.CrearGrupoDeWord", ex);
                return;
            } finally {
                if (wordDoc != null)
                {
                    wordDoc.Close(false);
                }
                if (wordApp != null)
                {
                    wordApp.Quit(false);
                }
            }
        }
コード例 #7
0
        // ====================================================================================================
        #region  MÉTODOS AUXILIARES
        // ====================================================================================================

        private void CrearGrupoDeWord2()
        {
            // Si el archivo no existe, salimos.
            if (!File.Exists(ArchivoWord))
            {
                return;
            }

            // Creamos la aplicación de Word.
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document    wordDoc = null;
            wordApp.Visible = false;

            try {
                // Abrimos el documento de word.
                wordDoc = wordApp.Documents.Open(ArchivoWord);

                // Añadimos un retorno de carro delante de las valoraciones.
                wordDoc.Content.Find.Execute("Balorazioa", false, true, false, false, false, true, 1, false, "\rBalorazioa", 2, false, false, false, false);

                // Creamos el grupo nuevo
                if (String.IsNullOrEmpty(Notas.Trim()))
                {
                    Notas = FechaActual.ToString("dd-MM-yyyy");
                }
                int idgruponuevo = BdGruposGraficos.NuevoGrupo(FechaActual, Notas);
                // Definimos las variables a usar
                bool              EnUnGrafico        = false;
                Grafico           grafico            = new Grafico();
                ValoracionGrafico valoracionanterior = new ValoracionGrafico();
                bool              IniciaGrafico      = false;
                bool              SalirDelBucle      = false;

                // Recorremos los párrafos del documento.
                foreach (Microsoft.Office.Interop.Word.Paragraph parrafo in wordDoc.Paragraphs)
                {
                    ValoracionGrafico valoracion        = new ValoracionGrafico();
                    string            texto             = GestionGraficos.LimpiarTexto(parrafo.Range.Text);
                    GestionGraficos.TipoValoracion tipo = GestionGraficos.ParseaTexto(texto, ref valoracion);

                    switch (tipo)
                    {
                    case GestionGraficos.TipoValoracion.InicioGrafico:
                        if (EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo.Range.Text, texto))
                            {
                                grafico         = new Grafico();
                                grafico.IdGrupo = idgruponuevo;
                                grafico.Numero  = (int)valoracion.Linea;
                                IniciaGrafico   = true;
                                EnUnGrafico     = true;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico         = new Grafico();
                            grafico.IdGrupo = idgruponuevo;
                            grafico.Numero  = (int)valoracion.Linea;
                            if (grafico.Numero % 2 == 0)
                            {
                                grafico.Turno = 2;
                            }
                            IniciaGrafico = true;
                            EnUnGrafico   = true;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.FinalGrafico:
                        if (!EnUnGrafico)
                        {
                            // Gestionamos el error
                            if (VerErrorGrafico(grafico.Numero, parrafo.Range.Text, texto))
                            {
                                EnUnGrafico   = false;
                                IniciaGrafico = false;
                                continue;
                            }
                            else
                            {
                                SalirDelBucle = true;
                            }
                        }
                        else
                        {
                            grafico.Final      = valoracionanterior.Inicio;
                            grafico.Valoracion = valoracion.Tiempo;
                            grafico.Recalcular();
                            BdGraficos.InsertarGrafico(grafico);
                            IniciaGrafico = false;
                            EnUnGrafico   = false;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Completo:
                    case GestionGraficos.TipoValoracion.Parcial:
                    case GestionGraficos.TipoValoracion.ParcialCodigo:
                    case GestionGraficos.TipoValoracion.ParcialLinea:
                    case GestionGraficos.TipoValoracion.ParcialVacio:
                        if (EnUnGrafico)
                        {
                            if (IniciaGrafico)
                            {
                                grafico.Inicio = valoracion.Inicio;
                                IniciaGrafico  = false;
                            }
                            else
                            {
                                valoracionanterior.Final = valoracion.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                            valoracionanterior = valoracion;
                        }
                        break;

                    case GestionGraficos.TipoValoracion.Informacion:
                        if (EnUnGrafico)
                        {
                            if (!IniciaGrafico)
                            {
                                valoracion.Inicio = valoracionanterior.Inicio;
                            }
                            grafico.ListaValoraciones.Add(valoracion);
                        }
                        break;
                    }
                    if (SalirDelBucle)
                    {
                        break;
                    }
                }
            } catch (Exception ex) {
                mensajes.VerError("VentanaNuevoGrupoVM.CrearGrupoDeWord", ex);
                return;
            } finally {
                if (wordDoc != null)
                {
                    wordDoc.Close(false);
                }
                if (wordApp != null)
                {
                    wordApp.Quit(false);
                }
            }
        }