示例#1
0
        /// <summary>
        /// Cargar DataViewGrid con resultados de consulta con los parámetros
        /// especificados en la Entidad "busqueda"
        /// </summary>
        /// <param name="busqueda">Entidad EBitacora</param>
        private void CargarTablaBitacora(EBitacora busqueda)
        {
            busqueda.FechaInicio = fechaInicio.Value.Date;
            busqueda.FechaFin = fechaFin.Value.Date;
            busqueda.LoginUsuario = txtbLogin.Text;
            busqueda.Accion = txtbAccion.Text;
            busqueda.TipoEvento = txtbTipoDeEvento.Text;
            busqueda.Descripcion = txtbDescripcion.Text;

            if (busqueda.FechaInicioFinValida())
            {
                try {
                    // Limpiar datos y refrescar el DataViewGrid
                    GridBitacora.DataSource = null;
                    GridBitacora.Rows.Clear();
                    GridBitacora.Refresh();

                    DataView infoPerfiles = new ReporteNeg().ConsultarBitacora(busqueda);
                    GridBitacora.DataSource = infoPerfiles;
                }
                catch (Exception ex)
                {
                    // Capturar e informar de excepción inesperada
                    MainForm.NotificarExcepcion("Cargar tabla de bitácora", ex);
                }
            }
            else
            {
                MessageBox.Show(this, "Las fechas que ha ingresado no están en el orden correcto o son mayores que hoy.",
                                      "Error de espacio-tiempo");
            }
        }
示例#2
0
        // Eliminar perfil
        public bool EliminarPerfil(EPerfil perfil)
        {
            try
            {
                if (perfilDAL.EliminarPerfil(perfil.IdPerfil) != 0)
                {
                    // Notificar cambio a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = perfil.LoginUsuario;
                    entrada.Accion = "Eliminar perfil";
                    entrada.TipoEvento = "Eliminar";
                    entrada.Descripcion = "Se ha eliminado la informacion del perfil '" + perfil.Nombre + "'.";
                    entrada.Entidad = perfil.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }

                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#3
0
        // Intentar login desde el cliente
        public bool IntentarIngreso(string login, string pass)
        {
            try
            {
                // Comprobación de formato del login mediante RegEx
                Regex regex = new Regex(@"[a-zA-ZñÑ\s]");
                if (regex.IsMatch(login))
                {
                    login = login.ToLower();
                    DataTable datos;

                    if (login.Equals("admin"))
                        datos = loginDAL.VerificarUsuario(login, pass);

                    else
                        datos = loginDAL.VerificarUsuario(login,
                            new Encriptacion().EncriptarSHA512(pass));

                    if (datos.Rows.Count != 0 && Convert.ToBoolean(datos.Rows[0][1]))
                    {
                        // Notificar ingreso a bitácora
                        EBitacora entrada = new EBitacora();
                        entrada.LoginUsuario = login;
                        entrada.Accion = "Ingresar al sistema";
                        entrada.TipoEvento = "Ingresar";
                        entrada.Descripcion = "El usuario '" + login + "' con el perfil '" +
                                             datos.Rows[0][2] + "' ha ingresado al sistema.";
                        entrada.Entidad = "Sistema";
                        new ReporteNeg().RegistrarBitacora(entrada);
                        return true;
                    }

                    else
                    {
                        // Notificar ingreso a bitácora
                        EBitacora entrada = new EBitacora();
                        entrada.LoginUsuario = login;
                        entrada.Accion = "Ingresar al sistema";
                        entrada.TipoEvento = "Ingresar";
                        entrada.Descripcion = "El usuario '" + login + "' ha tratado de ingresar al " +
                                              "sistema pero se presentó el siguiente error: nombre y contraseña " +
                                              "no se encuentran en el sistema.";
                        entrada.Entidad = "Sistema";
                        new ReporteNeg().RegistrarBitacora(entrada);
                        return false;
                    }
                }

                return false;
            }

            catch
            {
                return false;
            }
        }
示例#4
0
 // Registrar entrada en la bitácora
 public int RegistrarBitacora(EBitacora entrada)
 {
     SqlCommand comando = CrearComandoProc("CON_BitacoraRegistrar");
     comando.Parameters.AddWithValue("@Usuario", entrada.LoginUsuario);
     comando.Parameters.AddWithValue("@Accion", entrada.Accion);
     comando.Parameters.AddWithValue("@TipoEvento", entrada.TipoEvento);
     comando.Parameters.AddWithValue("@Descripcion", entrada.Descripcion);
     comando.Parameters.AddWithValue("@Entidad", entrada.Entidad);
     return EjecutarComando(comando);
 }
示例#5
0
 // Consultar bitácora
 public DataTable ConsultarBitacora(EBitacora entrada)
 {
     SqlCommand comando = CrearComandoProc("CON_BitacoraConsultar");
     comando.Parameters.AddWithValue("@FechaInicio", entrada.FechaInicio);
     comando.Parameters.AddWithValue("@FechaFin", entrada.FechaFin);
     comando.Parameters.AddWithValue("@Usuario", entrada.LoginUsuario);
     comando.Parameters.AddWithValue("@Accion", entrada.Accion);
     comando.Parameters.AddWithValue("@TipoEvento", entrada.TipoEvento);
     comando.Parameters.AddWithValue("@Descripcion", entrada.Descripcion);
     return EjecutarComandoDataTable(comando);
 }
示例#6
0
 /// <summary>
 /// Crear un registro en bitácora a partir de una entrada válida
 /// </summary>
 /// <param name="entrada">Entidad Bitácora con información para 
 /// nueva entrada</param>
 /// <returns>true - en caso de éxito tras el registro</returns>
 public bool RegistrarBitacora(EBitacora entrada)
 {
     try
     {
         if (reporteDAL.RegistrarBitacora(entrada) != 0)
             return true;
         else
             return false;
     }
     catch
     {
         return false;
     }
 }
示例#7
0
        /// <summary>
        /// Cambia el estado de la curso y actualiza el historial + validaciones
        /// </summary>
        /// <param name="curso"></param>
        /// <returns>true - si el procedimiento tuvo éxito</returns>
        public bool CambiarEstadoCurso(ECurso curso, string anterior, string nuevo)
        {
            try
            {
                if (anterior.Equals("Planificado") && nuevo.Equals("Abierto") ||
                    anterior.Equals("Curso en pausa") && nuevo.Equals("Abierto") ||
                    anterior.Equals("Matrícula incompleta") && nuevo.Equals("Abierto") ||
                    anterior.Equals("Abierto") && !nuevo.Equals("Abierto"))
                {
                    if (cursosDAL.CambiarEstadoCurso(curso) != 0)
                    {
                        // Notificar a bitácora
                        EBitacora entrada = new EBitacora();
                        entrada.LoginUsuario = curso.LoginUsuario;
                        entrada.Accion = "Cambiar estado de curso";
                        entrada.TipoEvento = "Modificar";
                        entrada.Descripcion = "El estado del curso '" + curso.Nombre +
                                              "' fue cambiado de '" + anterior + "' a '" +
                                               nuevo + "'.";
                        entrada.Entidad = curso.Nombre;
                        new ReporteNeg().RegistrarBitacora(entrada);

                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#8
0
        /// <summary>
        /// Cambia el estado de la oferta y actualiza el historial
        /// </summary>
        /// <param name="oferta"></param>
        /// <returns>true - si el procedimiento tuvo éxito</returns>
        public bool CambiarEstadoOferta(EOferta oferta, string anterior, string nuevo)
        {
            try
            {
                if (anterior.Equals("En matrícula") && !nuevo.Equals("En matrícula") ||
                    !anterior.Equals("En matrícula") && nuevo.Equals("En matrícula"))
                {
                    if (ofertasDAL.CambiarEstadoOferta(oferta) != 0)
                    {
                        // Notificar a bitácora
                        EBitacora entrada = new EBitacora();
                        entrada.LoginUsuario = oferta.LoginUsuario;
                        entrada.Accion = "Cambiar estado de oferta";
                        entrada.TipoEvento = "Modificar";
                        entrada.Descripcion = "El estado de la oferta '" + oferta.Nombre +
                                              "' fue cambiado de '" + anterior + "' a '" +
                                              nuevo + "'.";
                        entrada.Entidad = oferta.Nombre;
                        new ReporteNeg().RegistrarBitacora(entrada);

                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#9
0
        //  Registrar un nuevo usuario desde la lógica de negocio
        public bool RegistrarUsuario(EUsuario usuario)
        {
            try
            {
                usuario.Contrasena = new Encriptacion().EncriptarSHA512(usuario.Contrasena);
                if (userDAL.RegistrarUsuario(usuario) != 0)
                {
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = usuario.LoginUsuario;
                    entrada.Accion = "Registrar usuario";
                    entrada.TipoEvento = "Registrar";
                    entrada.Descripcion = "Se ha registrado el usuario '" + usuario.Nombre +
                                         "' con la siguiente información: " +
                                         "Login = '******', " +
                                         "Perfil = '" + usuario.NombrePerfil + "', " +
                                         "Nombre = '" + usuario.Nombre + "'.";
                    entrada.Entidad = usuario.Login;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#10
0
        //  Modificar un nuevo usuario desde la logica de negocio
        public bool ModificarUsuario(EUsuario usuario)
        {
            try
            {
                if (userDAL.ModificarUsuario(usuario) != 0)
                {
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = usuario.LoginUsuario;
                    entrada.Accion = "Registrar usuario";
                    entrada.TipoEvento = "Registrar";
                    entrada.Descripcion = "Se ha modificado el usuario '" + usuario.Nombre +
                                         "' con la siguiente información: " +
                                         "Login = '******', " +
                                         "Perfil = '" + usuario.NombrePerfil + "', " +
                                         "Nombre = '" + usuario.Nombre + "', " +
                                         "Activo = '" + BoolToWord(usuario.Activo) + "'.";
                    entrada.Entidad = usuario.Login;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#11
0
        /// <summary>
        /// Recibir excepciones si las hay de otras partes del programa
        /// y registrarlas en la bitácora de forma segura
        /// </summary>
        /// <param name="ex"></param>
        public static void NotificarExcepcion(string accion, Exception ex)
        {
            try
            {
                EBitacora error = new EBitacora();

                error.LoginUsuario = sesion.Login;
                error.Accion = accion;
                error.TipoEvento = "Excepción";
                error.Descripcion = "Se ha presentado un error grave. Detalles del error: " +
                                    "StackTrace: " + ex.StackTrace + " / " +
                                    "Mensaje: " + ex.Message;
                error.Entidad = "No disponible";

                new ReporteNeg().RegistrarBitacora(error);

                try
                {
                    SoundPlayer snd = new SoundPlayer(Resources.voz_crash);
                    snd.Play();
                }
                catch { }

                // Mostrar MessageBox y notificar visiblemente al usuario
                MessageBox.Show("Se ha presentado un error inesperado. " +
                                "Por favor, contacte a su administrador.",
                                "Error grave");
            }
            catch // Aquí se revienta
            {
                // Mostrar MessageBox y notificar visiblemente al usuario
                MessageBox.Show("El programa ha sufrido un error irrecuperable. " +
                                "Por favor, contacte a su administrador.",
                                "Excepción fatal");
            }
        }
示例#12
0
 /// <summary>
 /// Obtener DataView de Bitácora a partir de DataTable
 /// </summary>
 /// <param name="entrada">Consulta con parámetros buscados por el usuario</param>
 /// <returns>IEnumerable donde cada elemento es una fila de la tabla retornada</returns>
 public DataView ConsultarBitacora(EBitacora entrada)
 {
     DataTable tabla = reporteDAL.ConsultarBitacora(entrada);
     return tabla.AsDataView();
 }
示例#13
0
        /// <summary>
        /// Matricular un nuevo participante en línea
        /// </summary>
        /// <param name="part"></param>
        /// <returns></returns>
        public bool MatricularParticipanteEnLinea(EParticipante part)
        {
            try
            {
                if (matriculaDAL.MatricularParticipanteEnLinea(part) != 0)
                {
                    // Notificar a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = part.Usuario;
                    entrada.Accion = "Registrar participante";
                    entrada.TipoEvento = "Registrar";
                    entrada.Descripcion = "Se ha registrado al participante en línea: " +
                                         "Curso = " + part.NombreCurso + ", " +
                                         "Identificación = " + part.Identificacion + ", " +
                                         "Nombre = " + part.Nombre + ", " +
                                         "Teléfono = " + part.Telefono + ", " +
                                         "Correo electrónico = " + part.Correo + ", " +
                                         "Observaciones = " + part.Observaciones + ", " +
                                         "Tipos de apoyo requeridos = " + part.TipoApoyo + ".";
                    entrada.Entidad = part.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#14
0
        // Actualizar datos de perfil existente
        public bool ModificarPerfil(EPerfil perfil)
        {
            try
            {
                if (perfilDAL.ModificarPerfil(perfil) != 0)
                {
                    // Notificar cambio a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = perfil.LoginUsuario;
                    entrada.Accion = "Modificar perfil";
                    entrada.TipoEvento = "Modificar";
                    entrada.Descripcion = "Se ha modificado el perfil '" + perfil.Nombre +
                                         "' con la siguiente información: " + GenerarStringDescripcion(perfil);
                    entrada.Entidad = perfil.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#15
0
        /// <summary>
        /// Registrar curso
        /// </summary>
        /// <param name="curso"></param>
        /// <returns></returns>
        public bool RegistrarCurso(ECurso curso)
        {
            try
            {
                if (cursosDAL.RegistrarCurso(curso) != 0)
                {
                    // Notificar a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = curso.LoginUsuario;
                    entrada.Accion = "Registrar curso";
                    entrada.TipoEvento = "Registrar";
                    entrada.Descripcion = "Se ha registrado el curso '" + curso.Nombre +
                                         "' con la siguiente información: " +
                                         "Oferta = " + curso.NombreOferta + ", " +
                                         "Estado = " + curso.NombreEstado + ", " +
                                         "Código = " + curso.Codigo + ", " +
                                         "Tipo = " + curso.NombreTipo + ", " +
                                         "Sede = " + curso.NombreSede + ", " +
                                         "Facilitador = " + curso.Facilitador + ", " +
                                         "Población meta = " + curso.PoblacionMeta + ", " +
                                         "Horario = " + curso.Horario + ", " +
                                         "Número de grupo = " + curso.NumeroGrupo + ", " +
                                         "Lista de espera = " + GetSiNo(curso.ListaDeEspera) + ", " +
                                         "Curso requisito de = " + curso.CursoRequisitoDe + ", " +
                                         "Requisitos y observaciones = " + curso.Observaciones + ", " +
                                         "Total = " + curso.Total.ToString() + ", " +
                                         "Matrícula presencial = " + GetSiNo(curso.MatriculaPresencial) + ", " +
                                         "Matrícula telefónica = " + GetSiNo(curso.MatriculaTelefonica) + ", " +
                                         "Cantidad presencial y telefónica = " + curso.CantidadPresTel.ToString() + ", " +
                                         "Matrícula en línea = " + GetSiNo(curso.MatriculaEnLinea) + ", " +
                                         "Cantidad en línea = " + curso.CantidadEnLinea + ".";
                    entrada.Entidad = curso.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#16
0
        /// <summary>
        /// Eliminar un curso seleccionado desde la tabla
        /// </summary>
        /// <param name="curso"></param>
        /// <returns></returns>
        public bool EliminarCurso(ECurso curso)
        {
            try
            {
                if (cursosDAL.EliminarCurso(curso.Codigo) != 0)
                {
                    // Notificar a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = curso.LoginUsuario;
                    entrada.Accion = "Eliminar curso";
                    entrada.TipoEvento = "Eliminar";
                    entrada.Descripcion = "Se ha eliminado la información del curso '" +
                                           curso.Nombre + "'.";
                    entrada.Entidad = curso.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#17
0
        /// <summary>
        /// Registra una oferta
        /// </summary>
        /// <param name="oferta"></param>
        /// <returns>true - si el procedimiento tuvo éxito</returns>
        public bool RegistrarOferta(EOferta oferta)
        {
            try
            {
                if (ofertasDAL.RegistrarOferta(oferta) != 0)
                {
                    // Notificar a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = oferta.LoginUsuario;
                    entrada.Accion = "Registrar oferta";
                    entrada.TipoEvento = "Registrar";
                    entrada.Descripcion = "Se ha registrado la oferta '" + oferta.Nombre +
                                         "' con la siguiente información: " +
                                         "estado = " + oferta.Estado + ", " +
                                         "Sede = " + oferta.Sede + ", " +
                                         "Fecha y hora de matrícula = " + oferta.FechaRegistro + ", " +
                                         "Observaciones = " + oferta.Observacion;
                    entrada.Entidad = oferta.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
示例#18
0
        /// <summary>
        /// Elimina una oferta de la base de datos a partir de su ID
        /// </summary>
        /// <param name="oferta"></param>
        /// <returns>true - si el procedimiento tuvo éxito</returns>
        public bool EliminarOferta(EOferta oferta)
        {
            try
            {
                if (ofertasDAL.EliminarOferta(oferta.IdOferta) != 0)
                {
                    // Notificar a bitácora
                    EBitacora entrada = new EBitacora();
                    entrada.LoginUsuario = oferta.LoginUsuario;
                    entrada.Accion = "Eliminar oferta";
                    entrada.TipoEvento = "Eliminar";
                    entrada.Descripcion = "Se ha eliminado la información de la oferta '" +
                                          oferta.Nombre + "'.";
                    entrada.Entidad = oferta.Nombre;
                    new ReporteNeg().RegistrarBitacora(entrada);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }