Пример #1
0
        public bool ModificarNotasRapidas(NotasRapidas NotasRapidas)
        {
            NotasRapidas Notas = GetNotasRapidasByNotaRapidaId(NotasRapidas.NotaRapidaId);

            if (Notas != null)
            {
                try
                {
                    Notas.FechaPublicacion = UtilitiesCommons.ObtenerHorayFechaActualLocal();

                    Notas.FechaFinalizacion = NotasRapidas.FechaFinalizacion;

                    Notas.Titulo  = NotasRapidas.Titulo;
                    Notas.Mensaje = NotasRapidas.Mensaje;
                    //NotasRapidas.UsuarioPublica = ;// No se puede modificar nunca
                    Notas.Estado = (byte)NotasRapidas.Estado;

                    BD.Entry(Notas).State = EntityState.Modified;
                    BD.SaveChanges();
                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        // metodo para crear una NotasRapidas
        public bool GuardarNotaRapida(NotasRapidas NotasRapidas)
        {
            if (NotasRapidas != null)
            {// si el objeto es diferente de nulo
                try
                {
                    Bll_Personas Bll_Personas = new Bll_Personas();

                    NotasRapidas.FechaPublicacion = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                    var IdUsuario = (int)System.Web.HttpContext.Current.Session["IdUsuarioTesis"];
                    NotasRapidas.UsuarioPublica = Bll_Personas.GetPersonaByPersonaId(IdUsuario).PersonaId;

                    BD.NotasRapidas.Add(NotasRapidas);
                    BD.SaveChanges();
                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        public bool GuardarCalificacion(ListaPreguntas ListaPreguntas)
        {
            try
            {
                int CursoId = ListaPreguntas.ListaRespuestas[0].CursoId;
                int EstudianteEnSesionId = (int)HttpContext.Current.Session["IdUsuarioTesis"];
                foreach (var item in ListaPreguntas.ListaRespuestas)
                {
                    CalificacionDocenteCursoEstudiante CalificacionDocenteCursoEstudiante = new CalificacionDocenteCursoEstudiante();
                    CalificacionDocenteCursoEstudiante.CursoId      = item.CursoId;
                    CalificacionDocenteCursoEstudiante.EstudianteId = EstudianteEnSesionId;
                    CalificacionDocenteCursoEstudiante.PreguntasCalificacionCursoId = item.PreguntasCalificacionCursoId;
                    CalificacionDocenteCursoEstudiante.RespuestaPregunta            = item.RespuestaPregunta;
                    CalificacionDocenteCursoEstudiante.FechaEvaluacion = UtilitiesCommons.ObtenerHorayFechaActualLocal();

                    BD.CalificacionDocenteCursoEstudiante.Add(CalificacionDocenteCursoEstudiante);
                    BD.SaveChanges();
                }
                // Se deshabilita el boton de caliifcacion y se activa la opcion de descargar certificado para el estudiante
                CursoEstudiante CursoEstudiante = BD.CursoEstudiante.Where(x => x.CursoId == CursoId && x.EstudianteId == EstudianteEnSesionId).FirstOrDefault();
                CursoEstudiante.EstadoEvaluacionCursoyDocente = (byte)EnumEstadoEvaluacionCursoyDocente.Realizada;
                BD.Entry(CursoEstudiante).State = EntityState.Modified;
                BD.SaveChanges();
                return(true);
            }
            catch (Exception error)
            {
                Bll_File.EscribirLog(error.ToString());
                return(false);
            }
        }
        public bool MarcarCorreoComoLeidoBySistemaCorreoId(SistemaCorreo SistemaCorreo)
        {
            try
            {
                if (SistemaCorreo != null)
                {
                    if (SistemaCorreo.EstadoLectura == (byte)EnumEstadoLecturaCorreo.SinLeer && SistemaCorreo.DestinoId == (int)HttpContext.Current.Session["IdUsuarioTesis"])
                    {
                        SistemaCorreo.EstadoLectura = (byte)EnumEstadoLecturaCorreo.Leido;
                        SistemaCorreo.FechaLectura  = UtilitiesCommons.ObtenerHorayFechaActualLocal();

                        BD.Entry(SistemaCorreo).State = EntityState.Modified;
                        BD.SaveChanges();
                        ObtenerCorreosSinLeerByPersonaId();
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception error)
            {
                Bll_File.EscribirLog(error.ToString());
                return(false);
            }
        }
Пример #5
0
        public bool GuardarForoTema(ForoTema ForoTema)
        {
            if (ForoTema != null)
            {// si el objeto es diferente de nulo
                try
                {
                    ForoTema.DocenteId     = (int)HttpContext.Current.Session["IdUsuarioTesis"];
                    ForoTema.FechaRegistro = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                    ForoTema.Estado        = (byte)EnumEstados.Activo;

                    BD.ForoTema.Add(ForoTema);
                    BD.SaveChanges();

                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        public bool Matricularse(int CursoId, string Nombre, string Codigo)
        {
            if (CursoId > 0 && Nombre.Length > 3 && Codigo.Length > 0)
            {// si el objeto es diferente de nulo
                try
                {
                    int EstudianteId = (int)HttpContext.Current.Session["IdUsuarioTesis"];

                    CursoEstudiante CursoEstudiante = new CursoEstudiante();

                    CursoEstudiante.CursoId         = CursoId;
                    CursoEstudiante.EstudianteId    = EstudianteId;
                    CursoEstudiante.FechaMatricula  = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                    CursoEstudiante.AprobacionCurso = (byte)EnumAprobacionCurso.Cursando;
                    CursoEstudiante.EstadoEvaluacionCursoyDocente = (byte)EnumEstadoEvaluacionCursoyDocente.Pendiente;
                    CursoEstudiante.Nota1 = 0;
                    CursoEstudiante.Nota2 = 0;
                    CursoEstudiante.Nota3 = 0;

                    CursoEstudiante.Estado = (byte)EnumEstados.Activo;

                    BD.CursoEstudiante.Add(CursoEstudiante);
                    BD.SaveChanges();

                    HttpContext.Current.Session["CursosMatriculadosActivos"] = (int)HttpContext.Current.Session["CursosMatriculadosActivos"] + 1;

                    string Mesnaje =
                        $"Buen dia señor(a): { HttpContext.Current.Session["NombreUsuarioTesis"]}.\n" +
                        $"Se informa que su matricula en el curso [ {Nombre} ] con codigo: [ { Codigo} ], se ha realizado de manera exitosa. \n" +
                        $"Fecha Matricula: {UtilitiesCommons.ObtenerHorayFechaActualLocal()} \n " +
                        "Gracias por su pago, le deseamos exito en este nuevo curso. \n " +

                        "Despues de 24 horas, el curso estara disponible en su perfil. \n" +
                        "Feliz resto de dia.";

                    string    Email     = new Bll_Personas().GetEmailByPersonaId(EstudianteId);
                    Bll_Email Bll_Email = new Bll_Email();
                    Bll_Email.EnviarCorreo(Email, "Matricula Exitosa", Mesnaje);

                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #7
0
 // Metodo para listar las NotasRapidas existentes que se encentren en estado activo y  la fecha este vigente
 public List <NotasRapidas> VisualizarNotas()
 {
     try
     {
         DateTime            HoraActual       = UtilitiesCommons.ObtenerHorayFechaActualLocal();
         List <NotasRapidas> ListNotasRapidas = BD.NotasRapidas.Where(c => c.Estado == (byte)EnumEstados.Activo).Where(c => c.FechaFinalizacion >= HoraActual).Include(x => x.Personas).ToList();
         return(ListNotasRapidas);
     }
     catch (Exception error)
     {
         Bll_File.EscribirLog(error.ToString());
         return(null);
     }
 }
Пример #8
0
        // metodo que permite resgitar las excepciones en un archivo txt
        public static void EscribirLog(string log)
        {
            string ruta_logs = String.Format(@"" + ConfigurationManager.AppSettings.Get("Ruta_Logs"));// lee la propiedad ruta_logs del webconfig;

            if (!System.IO.File.Exists(ruta_logs))
            {
                if (!Directory.Exists(ruta_logs))
                {
                    Directory.CreateDirectory(ruta_logs);// se crea el directorio

                    // se crea el archivo
                    using (StreamWriter mylogs = System.IO.File.AppendText(ruta_logs + "LOGS_TESIS.txt")) //se crea el archivo
                    {
                        mylogs.Close();
                    }
                }
            }

            string Mesnaje = $"Se ha presentado el siguiente error en Cortec: \n\n" +
                             $"ERROR: {log} \n" +
                             $"Hora: {UtilitiesCommons.ObtenerHorayFechaActualLocal()} \n\n" +
                             $"Usuario en sesion: {HttpContext.Current.Session["NombreUsuarioTesis"]} \n";

            Bll_Email Bll_Email = new Bll_Email();

            Bll_Email.EnviarCorreo(ConfigurationManager.AppSettings.Get("EmailDestinoErrores"), "Error en sistema Cortec", Mesnaje);


            try
            {
                //Pass the filepath and filename to the StreamWriter Constructor
                StreamWriter sw = new StreamWriter(ruta_logs + "LOGS_TESIS.txt", true);

                //Write a line of text
                sw.WriteLine("\n");
                sw.WriteLine("-------------------------------------------------------------------------------------------------");
                sw.WriteLine("ERROR TESIS [ " + UtilitiesCommons.ObtenerHorayFechaActualLocal() + " ] : ");
                sw.WriteLine("\n");

                sw.WriteLine(log);

                sw.Close();
            }
            catch (Exception e)
            {
                // throw;
            }
        }
 public bool EnviarCorreo(SistemaCorreo SistemaCorreo)
 {
     try
     {
         SistemaCorreo.FechaEnvio  = UtilitiesCommons.ObtenerHorayFechaActualLocal();
         SistemaCorreo.RemitenteId = (int)HttpContext.Current.Session["IdUsuarioTesis"];
         BD.SistemaCorreo.Add(SistemaCorreo);
         BD.SaveChanges();
         return(true);
     }
     catch (Exception error)
     {
         Bll_File.EscribirLog(error.ToString());
         return(false);
     }
 }
Пример #10
0
        public static void VerificarPeriodoDeEvaluacion()
        {
            try
            {
                DateTime fechaQuemada = DateTime.ParseExact("31-12-2021", "dd-MM-yyyy", CultureInfo.InvariantCulture);// Permite Convertir de forma Excata la el formato de fecha
                DateTime FechActual   = UtilitiesCommons.ObtenerHorayFechaActualLocal().Date;

                if (fechaQuemada < FechActual)                                 // Si la fecha quemada es menor a la fecha actual
                {
                    HttpContext.Current.Response.Redirect("Login/Expiracion"); // si la sesion no existe, lo direcciona al login
                }
            }
            catch (Exception error)
            {
                Bll_File.EscribirLog(error.ToString());
            }
        }
Пример #11
0
        public bool GuardarParticipacionEnForoTema(int ForoTemaId, string Mensaje, string NombreDocente, string DocenteId, string Curso, string Tema)
        {
            if (ForoTemaId > 0 && Mensaje != null)
            {// si el objeto es diferente de nulo
                try
                {
                    ParticipacionEnForoTema ParticipacionEnForoTema = new ParticipacionEnForoTema();

                    ParticipacionEnForoTema.ParticipanteId = (int)HttpContext.Current.Session["IdUsuarioTesis"];
                    ParticipacionEnForoTema.ForoTemaId     = ForoTemaId;
                    ParticipacionEnForoTema.Mensaje        = Mensaje;
                    ParticipacionEnForoTema.FechaRegistro  = UtilitiesCommons.ObtenerHorayFechaActualLocal();

                    BD.ParticipacionEnForoTema.Add(ParticipacionEnForoTema);
                    BD.SaveChanges();

                    string Mesnaje =
                        $"Buen dia Docente: {NombreDocente}.\n\n" +
                        $"Se informa que se ha registrado una participacion en uno de los foros bajo su direccion, los datos son : \n\n" +
                        $"Nombre Curso: {Curso}\n" +
                        $"Nombre Participante: {HttpContext.Current.Session["NombreUsuarioTesis"]} \n" +
                        $"Tema Tratado: {Tema}\n" +
                        $"Hora de la participacion: {UtilitiesCommons.ObtenerHorayFechaActualLocal()}\n" +
                        $"Mensaje: {Mensaje}\n\n" +

                        "Feliz resto de dia. \n\n" +
                        "Nota: Este mensaje es enviado por el sistema de forma automatica, favor No responderlo.";

                    string    Email     = new Bll_Personas().GetEmailByPersonaId(Int32.Parse(DocenteId));
                    Bll_Email Bll_Email = new Bll_Email();
                    Bll_Email.EnviarCorreo(Email, "Nueva Participacion en foro", Mesnaje);

                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        // Metodo para registrar los intentos de accesos al sistema
        public void RegistroIngresoAlSitema(string UsuarioRed, EnumEstadoAcceso Estado)
        {
            try
            {
                IngresosAlSistema IngresosAlSistema = new IngresosAlSistema();
                IngresosAlSistema.Usuario      = UsuarioRed;
                IngresosAlSistema.FechaIntento = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                IngresosAlSistema.IP_Origen    = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                IngresosAlSistema.EstadoAcceso = (byte)Estado;

                BD.IngresosAlSistema.Add(IngresosAlSistema);
                BD.SaveChanges();
            }
            catch (Exception error)
            {
                Bll_File.EscribirLog(error.ToString());
            }
        }
        public bool GuardarMaterialDidactico(MaterialDidactico MaterialDidactico, HttpPostedFileBase file)
        {
            if (MaterialDidactico.CursoId > 0)
            {// si el objeto es diferente de nulo
                if (file != null && file.ContentLength > 0)
                {
                    BinaryReader bx        = new BinaryReader(file.InputStream);
                    byte[]       contenido = bx.ReadBytes(file.ContentLength);
                    string       filename_con_extension = file.FileName;
                    // string filename = Path.GetFileNameWithoutExtension(filename_con_extension);
                    string ContentType = file.ContentType;
                    string extencion   = Path.GetExtension(file.FileName);

                    MaterialDidactico.CursoId       = MaterialDidactico.CursoId;
                    MaterialDidactico.DocenteId     = (int)System.Web.HttpContext.Current.Session["IdUsuarioTesis"];
                    MaterialDidactico.Contenido     = contenido;
                    MaterialDidactico.Filename      = MaterialDidactico.Filename + extencion;
                    MaterialDidactico.ContentType   = ContentType;
                    MaterialDidactico.Version       = 1;
                    MaterialDidactico.FechaRegistro = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                    MaterialDidactico.Estado        = (byte)EnumEstados.Activo;
                }

                try
                {
                    BD.MaterialDidactico.Add(MaterialDidactico);
                    BD.SaveChanges();

                    return(true);
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
 public bool GuardarCronogramaActividadesCurso(CronogramaActividadesCurso CronogramaActividadesCurso)
 {
     if (CronogramaActividadesCurso != null)
     {// si el objeto es diferente de nulo
         try
         {
             CronogramaActividadesCurso.FechaPublicacion = UtilitiesCommons.ObtenerHorayFechaActualLocal();
             BD.CronogramaActividadesCurso.Add(CronogramaActividadesCurso);
             BD.SaveChanges();
             return(true);
         }
         catch (Exception error)
         {
             Bll_File.EscribirLog(error.ToString());
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Пример #15
0
        // Metodo que arma el Email y lo envia
        public bool EnviarCorreo(string EmailDestino, string Asunto, string Mensaje)
        {
            string EmailRemitente         = ConfigurationManager.AppSettings.Get("EmailRemitente");
            string PasswordEmailRemitente = ConfigurationManager.AppSettings.Get("PasswordEmailRemitente");
            int    PuertoEmail            = int.Parse(ConfigurationManager.AppSettings.Get("EmailPuerto"));
            string EmailHost = ConfigurationManager.AppSettings.Get("EmailHost");

            // para enviar correos electronicos, se debe crear una cuenta de gmail (preferiblemente), iniciar sesion en ella  y luego dirigirse a esta direccion
            //  www.google.com/settings/security/lesssecureapps
            // y darle en la opcion Permitir el acceso de aplicaciones menos seguras: SÍ
            // luego colocar los datos de la cuenta y la clave

            MailMessage mensaje = new System.Net.Mail.MailMessage();

            mensaje.To.Add("*****@*****.**");

            mensaje.To.Add(EmailDestino);
            mensaje.Subject         = Asunto;
            mensaje.SubjectEncoding = System.Text.Encoding.UTF8;
            mensaje.Body            = Mensaje;
            mensaje.BodyEncoding    = System.Text.Encoding.UTF8;
            mensaje.IsBodyHtml      = false;
            mensaje.From            = new MailAddress(EmailRemitente, "Sistema - TESIS", System.Text.Encoding.UTF8);
            mensaje.Priority        = MailPriority.Normal;
            System.Net.Mail.SmtpClient SmtpClient = new System.Net.Mail.SmtpClient();
            SmtpClient.UseDefaultCredentials = false;
            SmtpClient.Credentials           = new System.Net.NetworkCredential(EmailRemitente, PasswordEmailRemitente); // ususario y clave de la cuenta desde la que se envian los msj
            SmtpClient.Port      = PuertoEmail;
            SmtpClient.EnableSsl = true;
            SmtpClient.Host      = EmailHost;

            // se llenan los datos de evidencia de correo
            EvidenciaCorreo EvidenciaCorreo = new EvidenciaCorreo();

            EvidenciaCorreo.Asunto         = Asunto;
            EvidenciaCorreo.EmailDestino   = EmailDestino;
            EvidenciaCorreo.EmailRemitente = EmailRemitente;
            EvidenciaCorreo.Fecha          = UtilitiesCommons.ObtenerHorayFechaActualLocal();
            EvidenciaCorreo.Mensaje        = Mensaje;

            /*-------------------------ENVIO DE CORREO----------------------*/
            try
            {
                //Se envia el mensaje
                SmtpClient.Send(mensaje);
                SmtpClient.Dispose();

                EvidenciaCorreo.EstadoEnvio = "Enviado Exitoso";
                Bll_EvidenciaCorreo.GuardarEvidenciaCorreo(EvidenciaCorreo);


                return(true);
            }
            catch (System.Net.Mail.SmtpException Error)// no puede detener el proceso por lo tanto no se coloca un Throw
            {
                EvidenciaCorreo.EstadoEnvio = "Enviado Fallido";
                Bll_EvidenciaCorreo.GuardarEvidenciaCorreo(EvidenciaCorreo);

                //Bll_File.EscribirLog(Error.ToString());
                return(true);
            }
        }
Пример #16
0
        public bool ImprimirCertificado(int CursoId, int EstudianteId = 0)
        {
            try
            {
                Bll_Login    Bll_Login    = new Bll_Login();
                Bll_Cursos   Bll_Cursos   = new Bll_Cursos();
                Bll_Personas Bll_Personas = new Bll_Personas();

                int      DuracionCookie = 15;
                Personas Persona        = null;
                CertificadoEstudianteCurso CertificadoEstudianteCurso = null;

                if (EstudianteId == 0)
                {
                    EstudianteId = (int)HttpContext.Current.Session["IdUsuarioTesis"];
                }

                CertificadoEstudianteCurso = ObtenerCertificadoEstudianteCursoByEstudianteIdCursoId(CursoId, EstudianteId);

                if (CertificadoEstudianteCurso != null)
                {
                    Bll_Login.CrearCookie("Respuesta", "true", DuracionCookie);
                    Bll_Login.CrearCookie("NombreCurso", CertificadoEstudianteCurso.Cursos.Nombre, DuracionCookie);
                    Bll_Login.CrearCookie("CodigoCurso", CertificadoEstudianteCurso.Cursos.Codigo, DuracionCookie);
                    Bll_Login.CrearCookie("NombreEstudiante", CertificadoEstudianteCurso.Personas.NombreCompleto, DuracionCookie);
                    Bll_Login.CrearCookie("TipoDocumentoEstudiante", CertificadoEstudianteCurso.Personas.TipoDocumento.ToString(), DuracionCookie);
                    Bll_Login.CrearCookie("NumeroDocumentoEstudiante", CertificadoEstudianteCurso.Personas.NumDocumento, DuracionCookie);
                    Bll_Login.CrearCookie("DuracionHoras", CertificadoEstudianteCurso.Cursos.DuracionHoras.ToString(), DuracionCookie);

                    return(true);
                }
                else
                {
                    Cursos Curso = Bll_Cursos.GetCursoByCursoId(CursoId);
                    Persona = Bll_Personas.GetPersonaByPersonaId(EstudianteId);
                    EnumTipoDocumento TipoDocumento = (EnumTipoDocumento)Persona.TipoDocumento;

                    if (Curso != null && Persona != null)
                    {
                        CertificadoEstudianteCurso certificadoEstudianteCurso = new CertificadoEstudianteCurso();
                        certificadoEstudianteCurso.CursoId         = Curso.CursoId;
                        certificadoEstudianteCurso.EstudianteId    = EstudianteId;
                        certificadoEstudianteCurso.FechaAprobacion = UtilitiesCommons.ObtenerHorayFechaActualLocal();
                        BD.CertificadoEstudianteCurso.Add(certificadoEstudianteCurso);
                        BD.SaveChanges();

                        Bll_Login.CrearCookie("Respuesta", "true", DuracionCookie);
                        Bll_Login.CrearCookie("NombreCurso", Curso.Nombre, DuracionCookie);
                        Bll_Login.CrearCookie("CodigoCurso", Curso.Codigo, DuracionCookie);
                        Bll_Login.CrearCookie("NombreEstudiante", Persona.NombreCompleto, DuracionCookie);
                        Bll_Login.CrearCookie("TipoDocumentoEstudiante", TipoDocumento.ToString(), DuracionCookie);
                        Bll_Login.CrearCookie("NumeroDocumentoEstudiante", Persona.NumDocumento, DuracionCookie);

                        return(true);
                    }
                    else
                    {
                        Bll_Login.CrearCookie("Respuesta", "false", DuracionCookie);// si NO encontro el codigo se envia false
                        return(false);
                    }
                }
            }
            catch (Exception error)
            {
                Bll_File.EscribirLog(error.ToString());
                return(false);
            }
        }
Пример #17
0
        public bool GuardarPersona(Personas Persona)
        {
            if (Persona != null)
            {// si el objeto es diferente de nulo
                try
                {
                    if (!ValidaEmailExiste(Persona.Email))
                    {
                        Bll_Codigo Bll_Codigo = new Bll_Codigo();
                        int        Codigo     = Bll_Codigo.ObtenerCodigo();

                        Persona.CodigoInstitucional = "Cod-" + Codigo;

                        Persona.Clave        = Persona.Clave.ComputeHash(HashType.SHA256);
                        Persona.FechaIngreso = UtilitiesCommons.ObtenerHorayFechaActualLocal().Date;
                        Persona.Estado       = (byte)EnumEstados.Activo;
                        Persona.RolAcademico = (byte)EnumRolAcademico.Estudiante;

                        // ----------- Aca se guarda la imagen por defecto de Usuario sin Foto  -----------
                        string       dataFile = HttpContext.Current.Server.MapPath("~/Imagenes/Sin Foto.jpg");
                        FileStream   foto     = new FileStream(dataFile, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                        Byte[]       arreglo  = new Byte[foto.Length];
                        BinaryReader reader   = new BinaryReader(foto);
                        arreglo        = reader.ReadBytes(Convert.ToInt32(foto.Length));
                        Persona.Imagen = arreglo;
                        // ---------------------------------------------------------------------------------

                        BD.Personas.Add(Persona);
                        Bll_Codigo.GuardarCodigo(Codigo);
                        BD.SaveChanges();

                        AgregaRolAlaPersona(Persona.PersonaId, 3);// Toda nueva persona ingresa con Rol Estudiante

                        string Mesnaje = $"Buen dia señor(a): {Persona.NombreCompleto}." +
                                         "\n Se informa que su inscripcion fue realizada de manera exitosa en la plataforma TESIS. \n" +
                                         "Sus datos de acceso son : \n " +
                                         $"Usuario: {Persona.Email} \n" +
                                         $"Clave: ************  \n\n" +
                                         "Desde este momento puede disfrutar de nuestros cursos Online \n" +
                                         "Feliz resto de dia.";

                        Bll_Email Bll_Email = new Bll_Email();
                        Bll_Email.EnviarCorreo(Persona.Email, "Inscripcion Exitosa Tesis", Mesnaje);
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                catch (Exception error)
                {
                    Bll_File.EscribirLog(error.ToString());
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }