Beispiel #1
0
 /// <summary>
 /// Elimina un asunto de la base de datos
 /// Fecha de creación : 06/06/2018
 /// Autor : Maximiliano Leiva
 /// </summary>
 /// <param name="pEntAsunto"></param>
 public void Remove(Entidades.Asunto pEntAsunto)
 {
     try
     {
         // Generamos un nuevo objeto de conexión
         using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena))
         {
             // Realizamos la apertura de conexión
             c.Open();
             // Disponemos la transacción para ser utilizada en el transcurso de la operación
             using (SQLiteTransaction t = c.BeginTransaction())
             {
                 // Eliminamos los estados guardados en base de datos
                 EstadoAsunto.EliminarEstadosPorAsunto(pEntAsunto, c, t);
                 // Preparamos la eliminación del asunto
                 String strEliminarAsunto = "DELETE FROM ASUNTOS where numero=@Numero and operador=@Operador";
                 // Generamos el comando de eliminación
                 using (SQLiteCommand cmdEliminarAsunto = new SQLiteCommand(strEliminarAsunto, c, t))
                 {
                     // Agregamos los parametros al comando
                     cmdEliminarAsunto.Parameters.Agregar("@Numero", pEntAsunto.Numero);
                     cmdEliminarAsunto.Parameters.Agregar("@Operador", pEntAsunto.Oper.UserName);
                     // Ejecutamos la eliminación por comando
                     cmdEliminarAsunto.ExecuteNonQuery();
                 }
                 // Impactamos el Commit
                 t.Commit();
             }
         }
     }
     catch (Exception)
     {
         throw new Exception("Ha ocurrido un error al eliminar el asunto");
     }
 }
Beispiel #2
0
        /// <summary>
        /// Consulta a la base de datos por los asuntos que corresponden al dia de la fecha
        /// Fecha de creación : 07/06/2018
        /// Autor : Maximiliano Leiva
        /// </summary>
        /// <returns></returns>
        public List <Entidades.Asunto> GetCurrentDayList(Entidades.Operador pOper)
        {
            // Generamos la lista a devolver
            List <Entidades.Asunto> lstAsuntoDiario = new List <Entidades.Asunto>();

            // Generamos el objeto de conexión despachable
            using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena))
            {
                // Abrimos la conexión
                c.Open();
                // Creamos el comando despachable
                using (SQLiteCommand cmdConsultaAsuntosDia = new SQLiteCommand(_consultaAsuntosDiarios, c))
                {
                    // Cargamos el parametro de operador
                    cmdConsultaAsuntosDia.Parameters.Agregar("@Operador", pOper.UserName);
                    // Ejecutamos el lector de asuntos
                    using (SQLiteDataReader rdrLectorAsunto = cmdConsultaAsuntosDia.ExecuteReader())
                    {
                        // Leemos los resultados obtenidos del lector
                        while (rdrLectorAsunto.Read())
                        {
                            // Generamos una nueva entidad de asunto, donde almacenaremos los diferentes estados recolectados
                            Entidades.Asunto entAsuntoDiario = new Entidades.Asunto();
                            // Almacenamos el número y el operador sobre el asunto
                            entAsuntoDiario.Oper   = pOper;
                            entAsuntoDiario.Numero = rdrLectorAsunto["numero"].ToString();
                            // Traemos los estados del asunto recorrido
                            entAsuntoDiario.Estados = EstadoAsunto.TraerListaEstadosPorAsunto(entAsuntoDiario);
                            // Consultamos si el asunto es reportable
                            using (SQLiteCommand cmdAsuntoReportable = new SQLiteCommand(_consultaReportable, c))
                            {
                                cmdAsuntoReportable.Parameters.Agregar("@Numero", rdrLectorAsunto["numero"].ToString());
                                cmdAsuntoReportable.Parameters.Agregar("@Operador", pOper.UserName);
                                // Ejecutamos el lector y averiguamos si es verdadera la consulta
                                using (SQLiteDataReader rdrReportable = cmdAsuntoReportable.ExecuteReader())
                                {
                                    // Si devuelve respuesta se asigna verdadero a reportable
                                    if (rdrReportable.Read())
                                    {
                                        entAsuntoDiario.Reportable = true;
                                    }
                                }
                            }
                            lstAsuntoDiario.Add(entAsuntoDiario);
                        }
                    }
                }
            }
            // Devolvemos la lista procesada
            return(lstAsuntoDiario);
        }
Beispiel #3
0
 /// <summary>
 /// Actualiza un asunto en base de datos
 /// Fecha de creación : 06/06/2018
 /// Autor : Maximiliano Leiva
 /// </summary>
 /// <param name="pEntAsunto"></param>
 public void Modify(Entidades.Asunto pEntAsunto)
 {
     try
     {
         // Generamos el objeto de conexión
         using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena))
         {
             // Abrimos la conexión
             c.Open();
             // Iniciamos el sistema transaccional
             using (SQLiteTransaction t = c.BeginTransaction())
             {
                 // Generamos la cadena de caracteres que se utilizará para la actualización
                 String strActualizarAsunto = "UPDATE asuntos SET descripcion_breve=@DescripcionBreve, grupo_derivado=@GrupoDerivado WHERE operador=@Operador and numero=@Numero";
                 // Generamos el comando de actualización
                 using (SQLiteCommand cmdActualizarAsunto = new SQLiteCommand(strActualizarAsunto, c, t))
                 {
                     // Parametrizamo la consulta
                     cmdActualizarAsunto.Parameters.Agregar("@DescripcionBreve", pEntAsunto.DescripcionBreve);
                     cmdActualizarAsunto.Parameters.Agregar("@GrupoDerivado", pEntAsunto.GrupoDerivado);
                     cmdActualizarAsunto.Parameters.Agregar("@Operador", pEntAsunto.Oper.UserName);
                     cmdActualizarAsunto.Parameters.Agregar("@Reportable", pEntAsunto.Reportable ? 1: 0);
                     cmdActualizarAsunto.Parameters.Agregar("@Numero", pEntAsunto.Numero);
                     // Ejecutamos la actualización
                     cmdActualizarAsunto.ExecuteNonQuery();
                 }
                 // Ejecutamos de la interfaz expuesta por EstadoAsunto para actulizar los estados
                 EstadoAsunto.ActualizarEstadosPorAsunto(pEntAsunto, c, t);
                 // Ejecutamos la interfaz expuesta por actuación para actualizarlas o eliminarlas
                 if (pEntAsunto.Actuacion != null)
                 {
                     Actuacion.Modificar(pEntAsunto, c, t);
                 }
                 else // En el caso de que actuación venga como nulo, se eliminan todas las actuaciones relacionadas con el asunto (para evitar que queden actuaciones huerfanas)
                 {
                     Actuacion.Eliminar(pEntAsunto, c, t);
                 }
                 // Ejecutamos commit de la transacción
                 t.Commit();
             }
         }
     }
     catch (Exception)
     {
         throw new Exception("Ha ocurrido un error al ejecutar la actualización del asunto");
     }
 }
Beispiel #4
0
        /// <summary>
        /// Add a batch of asuntos
        /// </summary>
        /// <param name="lstA"></param>
        public void Add(List <Entidades.Asunto> lstA)
        {
            try {
                // Validates if the list is sented with data. If the list have one value, the petition is rejected because this method is for a batch of asuntos
                if (lstA == null || lstA.Count <= 1)
                {
                    throw new Exception("La lista de asuntos recibida esta vacía, es nula o es menor al minimo");
                }
                using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena)) {
                    c.Open();
                    using (SQLiteTransaction t = c.BeginTransaction()) {
                        string strInsertAsuntoOnDatabase = "INSERT INTO asuntos VALUES (@Number, @Operator, @ShortDescription, @DerivedGroup, @ForReport)";
                        using (SQLiteCommand cmdInsertAsuntoOnDatabase = new SQLiteCommand(strInsertAsuntoOnDatabase, c, t)) {
                            foreach (var asuntoToSave in lstA)
                            {
                                cmdInsertAsuntoOnDatabase.Parameters.Agregar("@Number", asuntoToSave.Numero);
                                cmdInsertAsuntoOnDatabase.Parameters.Agregar("@Operator", asuntoToSave.Oper.UserName);
                                cmdInsertAsuntoOnDatabase.Parameters.Agregar("@ShortDescription", asuntoToSave.DescripcionBreve);
                                cmdInsertAsuntoOnDatabase.Parameters.Agregar("@DerivedGroup", asuntoToSave.GrupoDerivado != null ? asuntoToSave.GrupoDerivado.Id : 0);
                                cmdInsertAsuntoOnDatabase.Parameters.Agregar("@ForReport", asuntoToSave.Reportable);

                                if (asuntoToSave.Estados != null)
                                {
                                    EstadoAsunto.AddAllFromAsunto(asuntoToSave, c, t);
                                }

                                if (asuntoToSave.Actuacion != null)
                                {
                                    Actuacion.Agregar(asuntoToSave, c, t);
                                }

                                cmdInsertAsuntoOnDatabase.ExecuteNonQuery();
                            }
                        }

                        // When process is completed correctly, commit changes on database
                        t.Commit();
                    }
                }
            } catch (Exception ex) {
                throw ex;
            }
        }
Beispiel #5
0
 /// <summary>
 /// Consulta a la base de datos si hay un asunto con los parametros que solicita
 /// Fecha de creación : 06/06/2018
 /// Autor : Maximiliano Leiva
 /// </summary>
 /// <param name="pEntAsunto"></param>
 public Entidades.Asunto Get(Entidades.Asunto pEntAsunto)
 {
     // Generamos una entidad nueva que sera procesada
     Entidades.Asunto entAsunto = new Entidades.Asunto();
     try
     {
         // Generamos un nuevo objeto de conexión
         using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena))
         {
             // Abrimos la conexión
             c.Open();
             String strConsultaAsunto = "SELECT descripcion_breve, grupo_derivado, reportable FROM asuntos where operador = @IdOperador and numero=@Numero";
             using (SQLiteCommand cmdConsultaAsunto = new SQLiteCommand(strConsultaAsunto, c))
             {
                 cmdConsultaAsunto.Parameters.Agregar("@IdOperador", pEntAsunto.Oper.UserName);
                 cmdConsultaAsunto.Parameters.Agregar("@Numero", pEntAsunto.Numero);
                 using (SQLiteDataReader rdrConsultaAsunto = cmdConsultaAsunto.ExecuteReader())
                 {
                     // Llemos los resultados obtenidos
                     if (rdrConsultaAsunto.Read())
                     {
                         if (!rdrConsultaAsunto.IsDBNull(1))
                         {
                             entAsunto.GrupoDerivado.Id = rdrConsultaAsunto.GetInt32(1);
                         }
                         entAsunto.Numero           = pEntAsunto.Numero;
                         entAsunto.Oper             = pEntAsunto.Oper;
                         entAsunto.DescripcionBreve = rdrConsultaAsunto["descripcion_breve"].ToString();
                         entAsunto.Reportable       = Convert.ToBoolean(rdrConsultaAsunto["reportable"]);
                         entAsunto.Estados          = EstadoAsunto.TraerListaEstadosPorAsunto(pEntAsunto);
                         entAsunto.Actuacion        = Actuacion.TraerActuaciones(entAsunto, c);
                     }
                 }
             }
         }
     }
     catch (Exception)
     {
         throw new Exception("Error en la recuperacion de información del asunto");
     }
     // Devolvemos la entidad procesada
     return(entAsunto);
 }
Beispiel #6
0
        /// <summary>
        /// Agrega un asunto a la base de datos
        /// Fecha de creación : 06/06/2018
        /// Autor : Maximiliano Leiva
        /// </summary>
        /// <param name="pEntAsunto">Entidad con los datos cargados que necesitan persistencia</param>
        public void Add(Entidades.Asunto pEntAsunto)
        {
            // Generamos el objeto de conexión
            using (SQLiteConnection c = new SQLiteConnection(Conexion.Cadena))
            {
                // Abrimos la conexión
                c.Open();
                using (SQLiteTransaction t = c.BeginTransaction())
                {
                    // Disponemos de la cadena que se utilizará en el ingreso a la base de datos
                    String strIngresarAsunto = "INSERT INTO asuntos (numero, operador, descripcion_breve, grupo_derivado, reportable) values (@Numero, @Operador, @Descripcion_breve, @Grupo_Derivado, @Reportable)";
                    using (SQLiteCommand cmdIngresarAsunto = new SQLiteCommand(strIngresarAsunto, c, t))
                    {
                        // Parametrizamos los valores agregados
                        cmdIngresarAsunto.Parameters.Agregar("@Numero", pEntAsunto.Numero);
                        cmdIngresarAsunto.Parameters.Agregar("@Operador", pEntAsunto.Oper.UserName);
                        cmdIngresarAsunto.Parameters.Agregar("@Descripcion_breve", pEntAsunto.DescripcionBreve);
                        cmdIngresarAsunto.Parameters.Agregar("@Grupo_Derivado", pEntAsunto.GrupoDerivado);
                        cmdIngresarAsunto.Parameters.Agregar("@Reportable", pEntAsunto.Reportable ? 1 : 0);
                        // Ejecutamos el Query
                        cmdIngresarAsunto.ExecuteNonQuery();
                    }
                    if (pEntAsunto.Estados != null)
                    {
                        // Agregamos los estados que traiga el asunto en cuestión
                        EstadoAsunto.AddAllFromAsunto(pEntAsunto, c, t);
                    }


                    // Agregamos la o las actuaciones
                    if (pEntAsunto.Actuacion != null)
                    {
                        Actuacion.Agregar(pEntAsunto, c, t);
                    }
                    t.Commit();
                }
            }
        }