PageRenderTime 32ms CodeModel.GetById 11ms app.highlight 13ms RepoModel.GetById 1ms app.codeStats 0ms

/Docs/07-Implementacion/Source/trunk/EDUAR_Regular/EDUAR_SI/EDUAR_SI_BusinessLogic/BLImportarAlumnos.cs

http://blpm.googlecode.com/
C# | 142 lines | 101 code | 14 blank | 27 comment | 3 complexity | ea45c9e2fe142acbaeb9fae83dcf5276 MD5 | raw file
  1using System;
  2using System.Collections.Generic;
  3using System.Data.SqlClient;
  4using EDUAR_Entities;
  5using EDUAR_SI_DataAccess;
  6using EDUAR_Utility.Enumeraciones;
  7
  8namespace EDUAR_SI_BusinessLogic
  9{
 10	public class BLImportarAlumnos : BLProcesoBase
 11	{
 12		#region --[Atributos]--
 13		Configuraciones objConfiguracion;
 14
 15		DAImportarDatos objDAImportarDatos;
 16
 17		DAObtenerDatos objDAObtenerDatos;
 18		#endregion
 19
 20		#region --[Constructores]--
 21		/// <summary>
 22		/// Constructor. LLama al constructor de la clase base BLProcesoBase.
 23		/// </summary>
 24		/// <param name="connectionString">Cadena de conexión a la base de datos.</param>
 25		public BLImportarAlumnos(String connectionString)
 26			: base(connectionString)
 27		{
 28
 29		}
 30		#endregion
 31
 32		#region --[Métodos Públicos]--
 33		/// <summary>
 34		/// Ejecuta la importación de Pais, Provincia y Localidad
 35		/// </summary>
 36		public void ImportarAlumnos()
 37		{
 38			try
 39			{
 40				objDAImportarDatos = new DAImportarDatos(ConnectionString);
 41
 42				objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDEV);
 43				//objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDesdeRemoto);
 44
 45				//Método que realmente lleva a cabo las tareas
 46				ImportarDatos();
 47
 48				//Inserta un registro en la tabla ProcesosEjecutado, en este caso, indica que se corrio correctamente el proceso (resultado = 1)
 49				ProcesosEjecutadosCreate(enumProcesosAutomaticos.ImportarAlumnos.GetHashCode(), true);
 50			}
 51			catch (Exception ex)
 52			{
 53				//ante cualquier error que se produzca, se graba en la tabla ProcesosEjecutados, 
 54				//un registro con el detalle de en que método se produjo el error (resultado = 0)
 55				OnErrorProcess(enumProcesosAutomaticos.ImportarAlumnos.GetHashCode(), ex);
 56				throw ex;
 57			}
 58		}
 59		#endregion
 60
 61		#region --[Métodos Privados]--
 62		/// <summary>
 63		/// Importars the datos.
 64		/// </summary>
 65		private void ImportarDatos()
 66		{
 67			//La transacción va a este nivel para poder hacer el rollback en el cath (si se produce error)
 68			SqlTransaction transaccion = null;
 69			try
 70			{
 71				//Al utillizar el "using" me aseguro que los recursos se liberen cuando termina el bloque
 72				SqlConnection conexion = new SqlConnection() { ConnectionString = ConnectionString };
 73				{
 74					//objeto que voy a utilizar para obtener los datos (BD Transaccional)
 75					objDAObtenerDatos = new DAObtenerDatos(objConfiguracion.valor);
 76
 77					//abre la conexión a la bd
 78					conexion.Open();
 79					//le indica al objeto transaccion que va a iniciar una transacción
 80					transaccion = conexion.BeginTransaction();
 81
 82					//User Story 141
 83					GrabarAlumno(transaccion);
 84				}
 85				//si la importación de los objetos fue exitosa, entonces confirmo las modificaciones.
 86				transaccion.Commit();
 87				conexion.Close();
 88			}
 89			catch (Exception ex)
 90			{
 91				//Valido que la transacción no sea nula, sino daría error al intentar el rollback
 92				if (transaccion != null)
 93					transaccion.Rollback();
 94				//mando la excepción para arriba
 95				throw ex;
 96			}
 97		}
 98
 99		/// <summary>
100		/// Grabars the alumno.
101		/// </summary>
102		private void GrabarAlumno(SqlTransaction transaccion)
103		{
104			try
105			{
106				List<Alumno> listaAlumnos = objDAObtenerDatos.obtenerAlumnoBDTransaccional(objConfiguracion);
107				Persona persona = null;
108				foreach (Alumno alumno in listaAlumnos)
109				{
110					persona = new Persona()
111					{
112						idPersona = 0,
113						nombre = alumno.nombre,
114						apellido = alumno.apellido,
115						numeroDocumento = alumno.numeroDocumento,
116						idTipoDocumento = alumno.idTipoDocumento,
117						domicilio = alumno.domicilio,
118						localidad = new Localidades() { nombre = alumno.localidad.nombre },
119						sexo = alumno.sexo,
120						fechaNacimiento = alumno.fechaNacimiento,
121						telefonoFijo = alumno.telefonoFijo,
122						telefonoCelular = alumno.telefonoCelular,
123						telefonoCelularAlternativo = alumno.telefonoCelularAlternativo,
124						email = alumno.email,
125						activo = alumno.activo,
126						barrio = alumno.barrio,
127						idTipoPersona = (int)enumTipoPersona.Alumno
128					};
129					if (string.IsNullOrEmpty(alumno.barrio)) persona.barrio = string.Empty;
130					alumno.idPersona = objDAImportarDatos.GrabarPersona(persona, transaccion, null, alumno.idAlumnoTransaccional);
131					objDAImportarDatos.GrabarAlumno(alumno, transaccion);
132
133				}
134			}
135			catch (Exception ex)
136			{
137				throw ex;
138			}
139		}
140		#endregion
141	}
142}