/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
- using System;
- using EDUAR_Entities;
- using EDUAR_SI_DataAccess;
- using EDUAR_Utility.Enumeraciones;
- using System.Data.SqlClient;
-
- namespace EDUAR_SI_BusinessLogic
- {
- public class BLImportarTablasAuxiliares : BLProcesoBase
- {
- #region --[Atributos]--
- Configuraciones objConfiguracion;
-
- DAImportarDatos objDAImportarDatos;
-
- DAObtenerDatos objDAObtenerDatos;
- #endregion
-
- #region --[Constructores]--
- /// <summary>
- /// Constructor. LLama al constructor de la clase base BLProcesoBase.
- /// </summary>
- /// <param name="connectionString">Cadena de conexión a la base de datos.</param>
- public BLImportarTablasAuxiliares(String connectionString)
- : base(connectionString)
- {
-
- }
- #endregion
-
- #region --[Métodos Públicos]--
- /// <summary>
- /// Ejecuta la importación de Pais, Provincia y Localidad
- /// </summary>
- public void ImportarPaisProvinciaLocalidad()
- {
- try
- {
- objDAImportarDatos = new DAImportarDatos(ConnectionString);
-
- objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDEV);
- //objConfiguracion = objDAImportarDatos.ObtenerConfiguracion(enumConfiguraciones.BaseDeDatosOrigenDesdeRemoto);
-
- //Método que realmente lleva a cabo las tareas
- ImportarDatos();
-
- //Inserta un registro en la tabla ProcesosEjecutado, en este caso, indica que se corrio correctamente el proceso (resultado = 1)
- ProcesosEjecutadosCreate(enumProcesosAutomaticos.ImportarTablasAuxiliares.GetHashCode(), true);
- }
- catch (Exception ex)
- {
- //ante cualquier error que se produzca, se graba en la tabla ProcesosEjecutados,
- //un registro con el detalle de en que método se produjo el error (resultado = 0)
- OnErrorProcess(enumProcesosAutomaticos.ImportarTablasAuxiliares.GetHashCode(), ex);
- throw ex;
- }
- }
- #endregion
-
- #region --[Métodos Privados]--
- /// <summary>
- /// Importars the datos.
- /// </summary>
- private void ImportarDatos()
- {
- //La transacción va a este nivel para poder hacer el rollback en el cath (si se produce error)
- SqlTransaction transaccion = null;
- try
- {
- //Al utillizar el "using" me aseguro que los recursos se liberen cuando termina el bloque
- SqlConnection conexion = new SqlConnection() { ConnectionString = ConnectionString };
- {
- //objeto que voy a utilizar para obtener los datos (BD Transaccional)
- objDAObtenerDatos = new DAObtenerDatos(objConfiguracion.valor);
-
- //abre la conexión a la bd
- conexion.Open();
- //le indica al objeto transaccion que va a iniciar una transacción
- transaccion = conexion.BeginTransaction();
-
- //realizo la importación de las entidades como un bloque, funciona para todas o no funciona para ninguna.
- objDAImportarDatos.GrabarPais(objDAObtenerDatos.obtenerPaisesBDTransaccional(objConfiguracion), transaccion);
-
- objDAImportarDatos.GrabarProvincia(objDAObtenerDatos.obtenerProvinciasBDTransaccional(objConfiguracion), transaccion);
-
- objDAImportarDatos.GrabarLocalidad(objDAObtenerDatos.obtenerLocalidadesBDTransaccional(objConfiguracion), transaccion);
-
- objDAImportarDatos.GrabarTipoDocumento(objDAObtenerDatos.obtenerTipoDocumentoBDTransaccional(objConfiguracion), transaccion);
-
- //User Story 140
- objDAImportarDatos.GrabarValoresEscalasCalificaciones(objDAObtenerDatos.obtenerValoresEscalaCalificacionBDTransaccional(objConfiguracion), transaccion);
- }
- //si la importación de los objetos fue exitosa, entonces confirmo las modificaciones.
- transaccion.Commit();
- conexion.Close();
- }
- catch (Exception ex)
- {
- //Valido que la transacción no sea nula, sino daría error al intentar el rollback
- if (transaccion != null)
- transaccion.Rollback();
- //mando la excepción para arriba
- throw ex;
- }
- }
- #endregion
- }
- }