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

http://blpm.googlecode.com/ · C# · 108 lines · 67 code · 16 blank · 25 comment · 2 complexity · 7a397d9cfc645a2ce6b562f622a269eb MD5 · raw file

  1. using System;
  2. using EDUAR_Entities;
  3. using EDUAR_SI_DataAccess;
  4. using EDUAR_Utility.Enumeraciones;
  5. using System.Data.SqlClient;
  6. namespace EDUAR_SI_BusinessLogic
  7. {
  8. public class BLImportarTablasAuxiliares : BLProcesoBase
  9. {
  10. #region --[Atributos]--
  11. Configuraciones objConfiguracion;
  12. DAImportarDatos objDAImportarDatos;
  13. DAObtenerDatos objDAObtenerDatos;
  14. #endregion
  15. #region --[Constructores]--
  16. /// <summary>
  17. /// Constructor. LLama al constructor de la clase base BLProcesoBase.
  18. /// </summary>
  19. /// <param name="connectionString">Cadena de conexión a la base de datos.</param>
  20. public BLImportarTablasAuxiliares(String connectionString)
  21. : base(connectionString)
  22. {
  23. }
  24. #endregion
  25. #region --[Métodos Públicos]--
  26. /// <summary>
  27. /// Ejecuta la importación de Pais, Provincia y Localidad
  28. /// </summary>
  29. public void ImportarPaisProvinciaLocalidad()
  30. {
  31. try
  32. {
  33. objDAImportarDatos = new DAImportarDatos(ConnectionString);
  34. objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDEV);
  35. //objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDesdeRemoto);
  36. //Método que realmente lleva a cabo las tareas
  37. ImportarDatos();
  38. //Inserta un registro en la tabla ProcesosEjecutado, en este caso, indica que se corrio correctamente el proceso (resultado = 1)
  39. ProcesosEjecutadosCreate(enumProcesosAutomaticos.ImportarTablasAuxiliares.GetHashCode(), true);
  40. }
  41. catch (Exception ex)
  42. {
  43. //ante cualquier error que se produzca, se graba en la tabla ProcesosEjecutados,
  44. //un registro con el detalle de en que método se produjo el error (resultado = 0)
  45. OnErrorProcess(enumProcesosAutomaticos.ImportarTablasAuxiliares.GetHashCode(), ex);
  46. throw ex;
  47. }
  48. }
  49. #endregion
  50. #region --[Métodos Privados]--
  51. /// <summary>
  52. /// Importars the datos.
  53. /// </summary>
  54. private void ImportarDatos()
  55. {
  56. //La transacción va a este nivel para poder hacer el rollback en el cath (si se produce error)
  57. SqlTransaction transaccion = null;
  58. try
  59. {
  60. //Al utillizar el "using" me aseguro que los recursos se liberen cuando termina el bloque
  61. SqlConnection conexion = new SqlConnection() { ConnectionString = ConnectionString };
  62. {
  63. //objeto que voy a utilizar para obtener los datos (BD Transaccional)
  64. objDAObtenerDatos = new DAObtenerDatos(objConfiguracion.valor);
  65. //abre la conexión a la bd
  66. conexion.Open();
  67. //le indica al objeto transaccion que va a iniciar una transacción
  68. transaccion = conexion.BeginTransaction();
  69. //realizo la importación de las entidades como un bloque, funciona para todas o no funciona para ninguna.
  70. objDAImportarDatos.GrabarPais(objDAObtenerDatos.obtenerPaisesBDTransaccional(objConfiguracion), transaccion);
  71. objDAImportarDatos.GrabarProvincia(objDAObtenerDatos.obtenerProvinciasBDTransaccional(objConfiguracion), transaccion);
  72. objDAImportarDatos.GrabarLocalidad(objDAObtenerDatos.obtenerLocalidadesBDTransaccional(objConfiguracion), transaccion);
  73. objDAImportarDatos.GrabarTipoDocumento(objDAObtenerDatos.obtenerTipoDocumentoBDTransaccional(objConfiguracion), transaccion);
  74. //User Story 140
  75. objDAImportarDatos.GrabarValoresEscalasCalificaciones(objDAObtenerDatos.obtenerValoresEscalaCalificacionBDTransaccional(objConfiguracion), transaccion);
  76. }
  77. //si la importación de los objetos fue exitosa, entonces confirmo las modificaciones.
  78. transaccion.Commit();
  79. conexion.Close();
  80. }
  81. catch (Exception ex)
  82. {
  83. //Valido que la transacción no sea nula, sino daría error al intentar el rollback
  84. if (transaccion != null)
  85. transaccion.Rollback();
  86. //mando la excepción para arriba
  87. throw ex;
  88. }
  89. }
  90. #endregion
  91. }
  92. }