/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

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