PageRenderTime 19ms CodeModel.GetById 9ms app.highlight 6ms RepoModel.GetById 2ms app.codeStats 0ms

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