Beispiel #1
0
        public void Update(Modos item)
        {
            var db = new escuelapsdelsurContext();

            db.Update(item);
            db.SaveChanges();
        }
Beispiel #2
0
        public void Add(Modos item)
        {
            var db = new escuelapsdelsurContext();

            db.Add(item);
            db.SaveChanges();
        }
Beispiel #3
0
        public void Update(Alumnos item)
        {
            var     db            = new escuelapsdelsurContext();
            Alumnos valorOriginal = db.Alumnos.Find(item.AlumnoId);

            item.Mail2 = valorOriginal.Mail2;
            db.Entry(valorOriginal).State = EntityState.Detached;
            db.Update(item);
            db.SaveChanges();
        }
Beispiel #4
0
        public void Add(Alumnos item)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    // Alumnos AlumnoNuevo;
                    // AlumnoNuevo = new Alumnos();
                    // AlumnoNuevo.AlumnoId = item.AlumnoId;
                    // AlumnoNuevo.Nombre = item.Nombre;
                    // AlumnoNuevo.Apellido = item.Apellido;
                    // AlumnoNuevo.Mail = item.Mail;
                    // AlumnoNuevo.Mail2 = item.Mail2;
                    // AlumnoNuevo.Telefono = item.Telefono;
                    // AlumnoNuevo.Celular = item.Celular;
                    // AlumnoNuevo.ComoConocio = item.ComoConocio;
                    // AlumnoNuevo.ModalidadId = item.ModalidadId;
                    // AlumnoNuevo.GradoInteres = item.GradoInteres;
                    // AlumnoNuevo.FechaInteresado = item.FechaInteresado;
                    // AlumnoNuevo.Comentario = item.Comentario;
                    // AlumnoNuevo.Provincia = item.Provincia;
                    // AlumnoNuevo.SituacionInscripcion = item.SituacionInscripcion;
                    // AlumnoNuevo.SituacionEspecial = item.SituacionEspecial;
                    // AlumnoNuevo.Dni = item.Dni;
                    // AlumnoNuevo.Domicilio = item.Domicilio;
                    // AlumnoNuevo.FechaInteresadoOriginal = item.FechaInteresadoOriginal;
                    // AlumnoNuevo.AnioAcursar = item.AnioAcursar;
                    // AlumnoNuevo.NmestreAcursar = item.NmestreAcursar;
                    // AlumnoNuevo.DocTitulo = item.DocTitulo;
                    // AlumnoNuevo.DocDni = item.DocDni;
                    // AlumnoNuevo.DocAptoFisico = item.DocAptoFisico;
                    // AlumnoNuevo.DocFoto = item.DocFoto;
                    // AlumnoNuevo.DocCompromiso = item.DocCompromiso;
                    int idInteresado = item.AlumnoId;
                    item.AlumnoId += 50000;    //Número mágico para que no colisione con sistema anterior.
                    item.Mail2     = "Enviar"; //Marca el envio de E-mail de bienvenida y completado de cuestionario.
                    db.Alumnos.Add(item);
                    //Borrar Interesados
                    Interesados interesadoABorrar = db.Interesados.Find(idInteresado);
                    if (interesadoABorrar != null)
                    {
                        db.Interesados.Remove(interesadoABorrar);
                    }
                    db.SaveChanges();

                    _logger.LogInformation("Crear Alumno (" + item.AlumnoId.ToString() + "), DNI:" + item.Dni.ToString() + "--> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #5
0
 public void Remove(Alumnos item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             int legajo = db.Legajos.Count(n => n.AlumnoId == item.AlumnoId);
             if (legajo == 0)
             {
                 Interesados interesado = new Interesados();
                 //interesado.InteresadoId = item.AlumnoId-50000;
                 interesado.Nombre               = item.Nombre;
                 interesado.Apellido             = item.Apellido;
                 interesado.Mail                 = item.Mail;
                 interesado.Mail2                = item.Mail2;
                 interesado.Telefono             = item.Telefono;
                 interesado.Celular              = item.Celular;
                 interesado.ComoConocio          = item.ComoConocio;
                 interesado.ModalidadId          = item.Modalidad.Id;
                 interesado.GradoInteres         = item.GradoInteres;
                 interesado.FechaInteresado      = item.FechaInteresadoOriginal;
                 interesado.Comentario           = item.Comentario;
                 interesado.Provincia            = item.Provincia;
                 interesado.SituacionInscripcion = item.SituacionInscripcion;
                 interesado.SituacionEspecial    = item.SituacionEspecial;
                 interesado.CarreraId            = item.CarreraId;
                 interesado.AnioAcursar          = item.AnioAcursar;
                 interesado.NmestreAcursar       = item.NmestreAcursar;
                 interesado.Turno                = item.Turno;
                 interesado.Seguimiento          = false;
                 interesado.MedioDeContactoId    = 12; //TODO: Este dato se pierde ¿?
                 interesado.FechaActualizacion   = DateTimeOffset.Now;
                 db.Remove(item);
                 db.Interesados.Add(interesado);
                 db.SaveChanges();
                 _logger.LogInformation("Eliminado Inscripto ID: " + item.AlumnoId.ToString() + " --> OK");
                 _logger.LogInformation("Re-Creando Interesado ID: " + interesado.InteresadoId.ToString() + " --> OK");
             }
             else
             {
                 throw new InscriptoInexistenteException("El Inscripto ID: " + item.AlumnoId.ToString() + " tiene legajo asignado.");
             }
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #6
0
 public void Egresar(Divisiones division)
 {
     try
     {
         if (division.EstadoDivisionId == EstadosDivision.Estados[(int)EstadoDivisionId.Cursando])
         {
             bool TerminarDivision = true;
             using (var db = new escuelapsdelsurContext())
             {
                 var estudiantesAsignados = db.Grupos.Include(g => g.Legajo).Where(d => d.CarreraId == division.CarreraId &&
                                                                                   d.ModoId == division.ModoId &&
                                                                                   d.AnioInicio == division.AnioInicio &&
                                                                                   d.MesInicio == division.MesInicio &&
                                                                                   d.AnioLectivo == division.AnioLectivo &&
                                                                                   d.NmestreLectivo == division.NmestreLectivo &&
                                                                                   d.TurnoId == division.TurnoId &&
                                                                                   d.DivisionId == division.DivisionId);
                 foreach (Grupos estudianteAsigando in estudiantesAsignados)
                 {
                     Legajos legajo = estudianteAsigando.Legajo;
                     if (legajo.EstadoEstudianteId == Enum.GetName(typeof(EstadoEstudianteId), EstadoEstudianteId.Activo))
                     {
                         legajo.EstadoEstudianteId = Enum.GetName(typeof(EstadoEstudianteId), EstadoEstudianteId.Egresado);
                         db.Legajos.Update(legajo);
                     }
                     TerminarDivision &= !(legajo.EstadoEstudianteId == Enum.GetName(typeof(EstadoEstudianteId), EstadoEstudianteId.Suspendido));
                 }
                 if (TerminarDivision)
                 {
                     division.EstadoDivisionId = EstadosDivision.Estados[(int)EstadoDivisionId.Terminado];
                     db.Divisiones.Update(division);
                 }
                 db.SaveChanges();
                 _logger.LogInformation("Egresar " + "--> Ok");
             }
         }
         else
         {
             throw new EstadoDivisionExpectedException("Se esperaba el estado: " + EstadosDivision.Estados[(int)EstadoDivisionId.Cursando]);
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #7
0
 public virtual void Update(Model item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             db.Update(item);
             db.SaveChanges();
             _logger.LogInformation("Actualizar " + typeof(Model).Name + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #8
0
 public void Update(Legajos item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             db.Update(item);
             db.SaveChanges();
             _logger.LogInformation("Actualizar Legajo ID: " + item.AlumnoId.ToString() + "/ Legajo Nro: " + item.LegajoNro.ToString() + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #9
0
 public void Remove(Interesados item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             db.Remove(item);
             db.SaveChanges();
             _logger.LogInformation("Eliminado Interesado ID: " + item.InteresadoId.ToString() + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #10
0
 public override void Update(Lugares item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             db.Update(item);
             db.SaveChanges();
             //_logger.LogInformation("Actualizar Evento ID: " + item.Id.ToString() + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #11
0
 public void Update(Interesados item)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             db.Update(item);
             db.SaveChanges();
             _logger.LogInformation("Actualizar Interesado ID: " + item.InteresadoId.ToString() + "/ Mail: " + item.Mail + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #12
0
        public void Add(Interesados item)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    db.Interesados.Add(item);
                    db.SaveChanges();

                    _logger.LogInformation("Crear Alumno (" + item.InteresadoId.ToString() + "), E-Mail:" + item.Mail + " --> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #13
0
        public void Add(Eventos item)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    db.Eventos.Add(item);
                    db.SaveChanges();

                    _logger.LogInformation("Crear Evento (" + item.Id.ToString() + ") --> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #14
0
        public void Update(IEnumerable <Inscriptos> items)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    Legajos LegajoNuevo;
                    Boolean HayLegajosNuevos = false;
                    int     dniok            = 0;
                    foreach (var item in items)
                    {
                        if (item.LegajoNro.HasValue)
                        {
                            LegajoNuevo                 = new Legajos();
                            LegajoNuevo.AlumnoId        = item.AlumnoId;
                            LegajoNuevo.LegajoNro       = item.LegajoNro.Value;
                            LegajoNuevo.Sexo            = "Masculino"; //TODO: Según https://pfebolo.atlassian.net/browse/EPSS0-112
                            LegajoNuevo.FechaNacimiento = null;
                            LegajoNuevo.FechaIngreso    = DateTime.Today;
                            dniok = 0;
                            int.TryParse(item.Dni, out dniok);
                            LegajoNuevo.Dni            = dniok;
                            LegajoNuevo.DireccionCalle = String.Empty;
                            LegajoNuevo.DireccionNro   = String.Empty;


                            db.Legajos.Add(LegajoNuevo);
                            HayLegajosNuevos = true;
                        }
                    }

                    if (HayLegajosNuevos)
                    {
                        db.SaveChanges();
                    }
                    _logger.LogInformation("Inscriptos:Crear legajos--> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #15
0
        public void Promover(Divisiones divisionOrigen, Divisiones divisionDestino)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    var estudiantesAsignados = db.Grupos.Where(d => d.CarreraId == divisionOrigen.CarreraId &&
                                                               d.ModoId == divisionOrigen.ModoId &&
                                                               d.AnioInicio == divisionOrigen.AnioInicio &&
                                                               d.MesInicio == divisionOrigen.MesInicio &&
                                                               d.AnioLectivo == divisionOrigen.AnioLectivo &&
                                                               d.NmestreLectivo == divisionOrigen.NmestreLectivo &&
                                                               d.TurnoId == divisionOrigen.TurnoId &&
                                                               d.DivisionId == divisionOrigen.DivisionId);
                    foreach (var estudianteAsigando in estudiantesAsignados)
                    {
                        Grupos nuevaAsignacion = new Grupos();
                        nuevaAsignacion.CarreraId      = divisionDestino.CarreraId;
                        nuevaAsignacion.ModoId         = divisionDestino.ModoId;
                        nuevaAsignacion.AnioInicio     = divisionDestino.AnioInicio;
                        nuevaAsignacion.MesInicio      = divisionDestino.MesInicio;
                        nuevaAsignacion.AnioLectivo    = divisionDestino.AnioLectivo;
                        nuevaAsignacion.NmestreLectivo = divisionDestino.NmestreLectivo;
                        nuevaAsignacion.TurnoId        = divisionDestino.TurnoId;
                        nuevaAsignacion.DivisionId     = divisionDestino.DivisionId;
                        nuevaAsignacion.AlumnoId       = estudianteAsigando.AlumnoId;

                        db.Grupos.Add(nuevaAsignacion);
                    }
                    divisionOrigen.EstadoDivisionId = "Terminado";
                    db.Divisiones.Update(divisionOrigen);
                    db.SaveChanges();

                    _logger.LogInformation("Promoción " + "--> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #16
0
 public virtual void MasiveAdd(Grupos[] items)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             foreach (Grupos item in items)
             {
                 db.Grupos.Add(item);
             }
             db.SaveChanges();
             _logger.LogInformation("Crear grupos masivo --> Ok");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #17
0
 public virtual void Remove(params Object[] KeyValues)
 {
     try
     {
         using (var db = new escuelapsdelsurContext())
         {
             var ItemBuscado = db.Set <Model>().Find(KeyValues);
             if (ItemBuscado != null)                     //Implementa Idempotencia.
             {
                 db.Remove(ItemBuscado);
                 db.SaveChanges();
             }
             _logger.LogInformation("Eliminar " + typeof(Model).Name + " --> OK");
         }
     }
     catch (System.Exception ex)
     {
         _logger.LogError(ex.Message);
         throw ex;
     }
 }
Beispiel #18
0
        public override void Update(Divisiones item)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    if (item.Curso != null)
                    {
                        db.Cursos.Update(item.Curso);
                        item.Curso = null;
                    }
                    db.Divisiones.Update(item);
                    db.SaveChanges();

                    _logger.LogInformation("Crear " + typeof(Divisiones).Name + "--> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #19
0
        public override void Add(Divisiones item)
        {
            try
            {
                using (var db = new escuelapsdelsurContext())
                {
                    Cursos Curso = db.Cursos.Find(item.Curso.CarreraId, item.Curso.ModoId, item.Curso.AnioInicio, item.Curso.MesInicio, item.Curso.AnioLectivo, item.Curso.NmestreLectivo);
                    if (Curso != null)
                    {
                        item.Curso = null;
                    }
                    db.Divisiones.Add(item);
                    db.SaveChanges();

                    _logger.LogInformation("Crear " + typeof(Divisiones).Name + "--> Ok");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #20
0
        public void ProcesarMails(object data)
        {
            if (!MailInscripcionEnProceso)
            {
                MailInscripcionEnProceso = true;
                try
                {
                    MailEasy       mail = new MailEasy(settings.smtpSettings);
                    MailboxAddress From = new MailboxAddress(settings.inscripcion.EmisorEmailNombre, settings.inscripcion.EmisorEmailDireccion);
                    MailboxAddress CCO  = null;
                    if (!string.IsNullOrEmpty(settings.inscripcion.CCOEmailDireccion))
                    {
                        CCO = new MailboxAddress(settings.inscripcion.CCOEmailNombre, settings.inscripcion.CCOEmailDireccion);
                    }
                    mail.Conectar();                     //Posible error de conexión a servidor de mail
                    int EmailsEnviados = 0;
                    int EmailsConError = 0;

                    using (var db = new escuelapsdelsurContext())
                    {
                        var alumnos = db.Alumnos.Where(x => x.Mail2 == "Enviar" || x.Mail2.StartsWith(REINTENTO)).ToList();
                        foreach (Alumnos alumno in alumnos)
                        {
                            try
                            {
                                /* --Contol de re-envio infinito de e-mails--
                                 * Al grabar/cambiar el estado de envío antes del envío del e-mail, se controla
                                 * el eventual re-envio infinito de mails, si no se grabará el estado,
                                 * en caso de un error en la grabación al estado 'Enviado'
                                 * (posterior al envío exitoso del e-mail), este quedaría en 'Enviar' y
                                 * volvería a enviar el e-mail (en la próximo ciclo) incorrectamente.
                                 * Si se genera un error al grabar el estado, no enviará el email por estar en bloque try.
                                 * En el peor de los casos quedaría en un loop hasta corregir el problema de
                                 * grabación de estado, pero no de envío de e-mails.
                                 */
                                alumno.Mail2 = DeterminarProximoReintento(alumno.Mail2);
                                db.SaveChanges();

                                //Se intenta enviar el Mail
                                EnviarEmail(alumno, From, CCO, mail);
                                alumno.Mail2 = "Enviado";                         //Estado que toma al enviar exitosamente el envio.
                                db.SaveChanges();                                 //Graba estado de envío exitoso.
                                EmailsEnviados++;
                            }
                            catch (System.Exception ex)
                            {
                                EmailsConError++;
                                DbContextHelper dbHelper = new DbContextHelper(db);
                                dbHelper.entryRollback(alumno);
                                _logger.LogError(new EventId(), ex, null);
                            }
                        }
                        if (EmailsEnviados != 0 || EmailsConError != 0)
                        {
                            _logger.LogInformation("E-Mails de Inscripción de completado de cuestionario enviados: " + EmailsEnviados.ToString());
                            _logger.LogInformation("E-Mails de Inscripción de completado de cuestionario con error: " + EmailsConError.ToString());
                            _logger.LogInformation("----------------------------------------------------------------------");
                        }
                        else
                        {
                            _logger.LogInformation("E-Mails de Inscripción de completado de cuestionario sin inscriptos a procesar");
                        }
                    }
                    mail.DesConectar();
                }
                catch (System.Exception ex)
                {
                    _logger.LogError(new EventId(), ex, null);                     //Posible error de conexión a servidor de mail
                }
                MailInscripcionEnProceso = false;
            }
            else
            {
                _logger.LogInformation("E-Mails de Inscripción de completado de cuestionario en proceso, se reintentará a próximo ciclo.");
            }
        }
Beispiel #21
0
        private void ActualizarInscripto(string[] inscripto, escuelapsdelsurContext db)
        {
            try
            {
                int      NroDni = 0;
                DateTime dtProvisorio;
                Legajos  legajo = null;

                Int32.TryParse(inscripto[(int)inscriptoCampos.DNI].Replace(".", ""), out NroDni);
                _logger.LogInformation("Procesando DNI:" + NroDni.ToString());
                if (db.Legajos.Count(x => (x.Dni == NroDni) && (x.Cuestionario == null)) == 1)
                {
                    using (var dbContextTransaction = db.Database.BeginTransaction())
                    {
                        try
                        {
                            StringBuilder registro = new StringBuilder("");
                            for (int campo = 0; campo < inscripto.Length; campo++)
                            {
                                registro.Append(inscripto[campo]);
                                registro.Append(",");
                            }
                            _logger.LogInformation("Fila: " + registro.ToString());

                            legajo      = db.Legajos.Single(x => x.Dni == NroDni);
                            legajo.Sexo = inscripto[(int)inscriptoCampos.Sexo].Trim();
                            if (DateTime.TryParse(inscripto[(int)inscriptoCampos.FechaNacimiento], out dtProvisorio))
                            {
                                legajo.FechaNacimiento = dtProvisorio;
                            }
                            else
                            {
                                legajo.FechaNacimiento = new DateTime(1900, 1, 1);                                 //MinValue form smallDateTime (type of DB Column)
                            }
                            legajo.LugarNacimiento            = inscripto[(int)inscriptoCampos.LugarNacimiento].Trim();
                            legajo.DireccionCalle             = inscripto[(int)inscriptoCampos.DireccionCalle].Trim();
                            legajo.DireccionNro               = inscripto[(int)inscriptoCampos.DireccionNumero].Trim();
                            legajo.DireccionCoordenadaInterna = inscripto[(int)inscriptoCampos.DireccionDepartamento].Trim() + ", " + inscripto[(int)inscriptoCampos.DireccionOtros].Trim();
                            legajo.LocalidadBase              = inscripto[(int)inscriptoCampos.DireccionLocalidad].Trim();
                            legajo.SecundarioCompletoOley25   = false;
                            if (inscripto[(int)inscriptoCampos.Aclaracion].Trim() != "")
                            {
                                if (legajo.Comentarios != null && legajo.Comentarios.Trim() != "")
                                {
                                    legajo.Comentarios = legajo.Comentarios.Trim() + " - " + inscripto[(int)inscriptoCampos.Aclaracion].Trim();
                                }
                                else
                                {
                                    legajo.Comentarios = inscripto[(int)inscriptoCampos.Aclaracion].Trim();
                                }
                            }
                            int CPBase = 0;
                            int.TryParse(inscripto[(int)inscriptoCampos.DireccionCP].Trim(), out CPBase);
                            legajo.CodigoPostalBase = CPBase;
                            legajo.FechaIngreso     = DateTime.Parse(inscripto[(int)inscriptoCampos.FechaDeInscripcion]);
                            legajo.ModalidadBase    = inscripto[(int)inscriptoCampos.CursoModalidad];
                            legajo.Cuestionario     = DateTime.Parse(inscripto[(int)inscriptoCampos.FechaDeInscripcion]);
                            legajo.Historia         = inscripto[(int)inscriptoCampos.Historia].Trim();
                            legajo.Definicion       = inscripto[(int)inscriptoCampos.Definicion].Trim();
                            legajo.Situacion        = inscripto[(int)inscriptoCampos.Situacion].Trim();
                            legajo.Expectativas     = inscripto[(int)inscriptoCampos.Expectativas].Trim();

                            //Estudios
                            int Estudio_ID = 500;
                            //Secundario
                            Estudios estudio;
                            Estudio_ID            += 1;
                            estudio                = db.Estudios.SingleOrDefault(x => x.AlumnoId == legajo.AlumnoId && x.EstudioId == Estudio_ID) ?? new Estudios(legajo.AlumnoId, Estudio_ID);
                            estudio.NivelEstudioId = "Secundario";
                            estudio.Titulo         = inscripto[(int)inscriptoCampos.EstudioSecundarioCarrera].Trim();
                            estudio.Institucion    = inscripto[(int)inscriptoCampos.EstudioSecundarioExpedidoPor].Trim();
                            estudio.Terminado      = (inscripto[(int)inscriptoCampos.EstudioSecundario].Trim().ToUpper() == "SI");
                            if (!db.Estudios.Contains(estudio))
                            {
                                db.Estudios.Add(estudio);
                            }
                            if ((inscripto[(int)inscriptoCampos.EstudioTerciarioCarrera].Trim() != "") ||
                                (inscripto[(int)inscriptoCampos.EstudioTerciarioInstitucion].Trim() != ""))
                            {
                                Estudio_ID            += 1;
                                estudio                = db.Estudios.SingleOrDefault(x => x.AlumnoId == legajo.AlumnoId && x.EstudioId == Estudio_ID) ?? new Estudios(legajo.AlumnoId, Estudio_ID);
                                estudio.NivelEstudioId = "Terciario";
                                estudio.Titulo         = inscripto[(int)inscriptoCampos.EstudioTerciarioCarrera].Trim();
                                estudio.Institucion    = inscripto[(int)inscriptoCampos.EstudioTerciarioCarrera].Trim();
                                estudio.Terminado      = (inscripto[(int)inscriptoCampos.EstudioTerciarioCompleto].Trim().ToUpper() == "SI");
                                if (!db.Estudios.Contains(estudio))
                                {
                                    db.Estudios.Add(estudio);
                                }
                            }
                            if ((inscripto[(int)inscriptoCampos.EstudioUniversitarioCarrera].Trim() != "") ||
                                (inscripto[(int)inscriptoCampos.EstudioUniversitarioInstitucion].Trim() != ""))
                            {
                                Estudio_ID            += 1;
                                estudio                = db.Estudios.SingleOrDefault(x => x.AlumnoId == legajo.AlumnoId && x.EstudioId == Estudio_ID) ?? new Estudios(legajo.AlumnoId, Estudio_ID);
                                estudio.NivelEstudioId = "Universitario";
                                estudio.Titulo         = inscripto[(int)inscriptoCampos.EstudioUniversitarioCarrera].Trim();
                                estudio.Institucion    = inscripto[(int)inscriptoCampos.EstudioUniversitarioCarrera].Trim();
                                estudio.Terminado      = (inscripto[(int)inscriptoCampos.EstudioUniversitarioCompleto].Trim().ToUpper() == "SI");
                                if (!db.Estudios.Contains(estudio))
                                {
                                    db.Estudios.Add(estudio);
                                }
                            }

                            //Trabajos
                            Trabajos trabajo;
                            int      Trabajo_ID = 500;
                            if ((inscripto[(int)inscriptoCampos.TrabajoAntiguedad].Trim() != "") ||
                                (inscripto[(int)inscriptoCampos.TrabajoCargo].Trim() != "") ||
                                (inscripto[(int)inscriptoCampos.TrabajoLugar].Trim() != "") ||
                                (inscripto[(int)inscriptoCampos.TrabajoTelefono].Trim() != ""))
                            {
                                Trabajo_ID         += 1;
                                trabajo             = db.Trabajos.SingleOrDefault(x => x.AlumnoId == legajo.AlumnoId && x.TrabajoId == Trabajo_ID) ?? new Trabajos(legajo.AlumnoId, Trabajo_ID);
                                trabajo.Antiguedad  = inscripto[(int)inscriptoCampos.TrabajoAntiguedad].Trim();
                                trabajo.Cargo       = inscripto[(int)inscriptoCampos.TrabajoCargo].Trim();
                                trabajo.RazonSocial = inscripto[(int)inscriptoCampos.TrabajoLugar].Trim();
                                trabajo.Telefono    = inscripto[(int)inscriptoCampos.TrabajoTelefono].Trim();
                                if (!db.Trabajos.Contains(trabajo))
                                {
                                    db.Trabajos.Add(trabajo);
                                }
                            }
                            db.SaveChanges();
                            dbContextTransaction.Commit();
                            _logger.LogInformation("Legajo con DNI" + NroDni.ToString() + " encontrado y actualizado satisfactoriamente.");
                            _inscriptosEncontradosOK += 1;
                        }

                        catch (System.Exception ex)
                        {
                            dbContextTransaction.Rollback();
                            if (legajo != null)
                            {
                                //Rollback del Contexto
                                DbContextHelper dbHelper = new DbContextHelper(db);
                                dbHelper.tableRollback <Estudios>(legajo.Estudios);
                                dbHelper.tableRollback <Trabajos>(legajo.Trabajos);
                                dbHelper.entryRollback(legajo);
                            }
                            _logger.LogError(new EventId(), ex, null);
                            _inscriptosEncontradosNoOK += 1;
                        }
                    }
                }
                else
                {
                    _logger.LogInformation(NroDni.ToString() + " No encontrado o previamente procesado.");
                    _inscriptosNoEncontrados += 1;
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(new EventId(), ex, null);
            }
        }