/// <summary> /// Finaliza el proceso de los registros de un archivo de Formato Uno /// </summary> /// <param name="p_smResult">Estado final de la operacion</param> public void End(ref StatMsg p_smResult) { // No hay errores aun p_smResult.BllReset("FormatoInscripcion", "End"); try { if (spTransaction != null) spTransaction.Commit(); if (this.bdConnection != null) { this.bdConnection.Close(); this.bdConnection.Dispose(); } } catch (Exception l_expData) { // La captura de un error se reporta siempre como // grave y produce la cancelación del proceso. p_smResult.BllError(l_expData.ToString()); } finally { p_smResult.BllPop(); } }
/// <summary> /// Incia el proceso de los registros de un archivo de Formato Uno /// </summary> /// <param name="p_strFileName">Nombre del archivo a procesar</param> /// <param name="p_strExtraData">Datos extras asociados</param> /// <param name="p_smResult">Estado final de la operacion</param> public void Init(string p_strFileName, string p_strExtraData, ref StatMsg p_smResult) { // No hay errores aun p_smResult.BllReset("FormatoInscripcion", "Init"); try { this.bdConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["InscripcionesCursos"].ConnectionString); this.bdConnection.Open(); this.spTransaction = bdConnection.BeginTransaction("TransactionInscripcion"); CleanInscriptions(p_smResult); } catch (Exception l_expData) { // La captura de un error se reporta siempre como // grave y produce la cancelación del proceso. p_smResult.BllError(l_expData.ToString()); } finally { p_smResult.BllPop(); } }
/// <summary> /// Procesa los registros de un archivo de Formato Uno /// </summary> /// <param name="p_iNroRec">Numero de registro</param> /// <param name="p_astrData">Datos del registro a procesar</param> /// <param name="p_smResult">Estado final de la operacion</param> public void Process(int p_iNroRec, string[] p_astrData, ref StatMsg p_smResult) { // No hay errores aun p_smResult.BllReset("FormatoInscripcion", "Process"); try { #region Validations double numCheck; DateTime dateCheck; //VALIDA TIPO INSCRIPCION if (p_astrData[0].Trim().Length == 0) { p_smResult.BllError("El Tipo de Inscripcion debe contener un valor."); return; } //VALIDA TURNO DE INSCRIPCION if (p_astrData[1].Trim().Length == 0) { p_smResult.BllError("El Turno de Inscripcion debe contener un valor."); return; } else { if (!DateTime.TryParse(p_astrData[1], out dateCheck)) { p_smResult.BllError("El Turno de Inscripcion debe ser del tipo DateTime."); return; } } //VALIDA ID_VUELTA if (p_astrData[2].Trim().Length == 0) { p_smResult.BllError("El Id de Vuelta debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[2], out numCheck)) { p_smResult.BllError("El Id de Vuelta debe ser del tipo int."); return; } } //VALIDA ID_MATERIA if (p_astrData[3].Trim().Length == 0) { p_smResult.BllError("El Id de Materia debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[3], out numCheck)) { p_smResult.BllError("El Id de Materia debe ser del tipo int."); return; } } //VALIDA CATEDRA if (p_astrData[4].Trim().Length == 0) { p_smResult.BllError("La Catedra/Comision debe contener un valor."); return; } //VALIDA DNI if (p_astrData[5].Trim().Length == 0) { p_smResult.BllError("El DNI debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[5], out numCheck)) { p_smResult.BllError("El DNI debe ser del tipo int."); return; } } //VALIDA ORIGEN_INSCRIPCION if (p_astrData[6].Trim().Length == 0) { p_smResult.BllError("El Origen de Inscripcion debe contener un valor."); return; } //VALIDA FECHA_ALTA_INSCRI¨CION if (p_astrData[8].Trim().Length == 0) { p_smResult.BllError("La Fecha de Alta de Inscripcion debe contener un valor."); return; } else { if (!DateTime.TryParse(p_astrData[8] + " " + p_astrData[9], out dateCheck)) { p_smResult.BllError("La Fecha de Alta de Inscripcion debe ser del tipo DateTime."); return; } } //VALIDA FECHA_MODIFICACION_INSCRIPCION if (p_astrData[11].Trim().Length > 0) { if (!DateTime.TryParse(p_astrData[11] + " " + p_astrData[12], out dateCheck)) { p_smResult.BllError("La Fecha de Alta de Inscripcion debe ser del tipo DateTime."); return; } } #endregion using (SqlCommand cmd = new SqlCommand(sp_ImportInscripcion, this.bdConnection)) { cmd.CommandType = CommandType.StoredProcedure; if (!ValidateStudentsInPadron(Convert.ToInt32(p_astrData[5]), p_smResult)) InsertMissedUser(Convert.ToInt32(p_astrData[5]), p_smResult); cmd.Parameters.Add("@IdTipoInscripcion", SqlDbType.Char).Value = p_astrData[0]; cmd.Parameters.Add("@TurnoInscripcion", SqlDbType.Date).Value = Convert.ToDateTime(p_astrData[1]); cmd.Parameters.Add("@IdVuelta", SqlDbType.Int).Value = Convert.ToInt32(p_astrData[2]); cmd.Parameters.Add("@IdMateria", SqlDbType.Int).Value = Convert.ToInt32(p_astrData[3]); cmd.Parameters.Add("@CatedraComision", SqlDbType.VarChar).Value = p_astrData[4]; cmd.Parameters.Add("@DNI", SqlDbType.Int).Value = Convert.ToInt32(p_astrData[5]); cmd.Parameters.Add("@IdEstadoInscripcion", SqlDbType.Char).Value = p_astrData[6].Trim(); cmd.Parameters.Add("@OrigenInscripcion", SqlDbType.Char).Value = ((Object)p_astrData[7].Trim() ?? DBNull.Value); cmd.Parameters.Add("@FechaAltaInscripcion", SqlDbType.DateTime).Value = p_astrData[8].Trim().Length > 0 ? Convert.ToDateTime(p_astrData[8] + " " + p_astrData[9]) : (DateTime)SqlDateTime.Null; cmd.Parameters.Add("@OrigenModificacion", SqlDbType.Char).Value = ((Object)p_astrData[10].Trim() ?? DBNull.Value); cmd.Parameters.Add("@FechaModificacionInscripcion", SqlDbType.DateTime).Value = p_astrData[11].Trim().Length > 0 ? Convert.ToDateTime(p_astrData[11] + " " + p_astrData[12]) : (DateTime)SqlDateTime.Null; cmd.Parameters.Add("@DNIEmpleadoAlta", SqlDbType.Int).Value = p_astrData[13].Trim().Length > 0 ? Convert.ToInt32(p_astrData[13]) : 0; cmd.Parameters.Add("@DNIEmpleadoMod", SqlDbType.Int).Value = p_astrData[14].Trim().Length > 0 ? Convert.ToInt32(p_astrData[14]) : 0; cmd.Transaction = this.spTransaction; cmd.ExecuteNonQuery(); } } catch (Exception l_expData) { // La captura de un error se reporta siempre como // grave y produce la cancelación del proceso. p_smResult.BllError(l_expData.ToString()); } finally { p_smResult.BllPop(); } }
/// <summary> /// Procesa los registros de un archivo de Formato Uno /// </summary> /// <param name="p_iNroRec">Numero de registro</param> /// <param name="p_astrData">Datos del registro a procesar</param> /// <param name="p_smResult">Estado final de la operacion</param> public void Process(int p_iNroRec, string[] p_astrData, ref StatMsg p_smResult) { // No hay errores aun p_smResult.BllReset("FormatoPadron", "Process"); try { #region Validations double numCheck; //VALIDA DNI if (p_astrData[0].Trim().Length == 0) { p_smResult.BllError("El DNI debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[0], out numCheck)) { p_smResult.BllError(String.Format("El DNI {0} debe ser del tipo int.", p_astrData[0])); return; } } if (p_astrData[19].Trim().Length != 0) { if (!double.TryParse(p_astrData[19], out numCheck)) { p_smResult.BllError(String.Format("El DNI {0} debe ser del tipo int.", p_astrData[0])); return; } } //VALIDA APELLIDONOMBRE if (p_astrData[1].Trim().Length == 0) { p_smResult.BllError("El ApellidoNombre debe contener un valor."); return; } //VALIDA ID_SEDE if (p_astrData[2].Trim().Length == 0) { p_smResult.BllError("El Id de Sede debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[2], out numCheck)) { p_smResult.BllError("El Id de Sede debe ser del tipo int."); return; } } //VALIDA ID_ESTADO if (p_astrData[3].Trim().Length == 0) { p_smResult.BllError("El Id de Estado debe contener un valor."); return; } //VALIDA ID_CARRERA if (p_astrData[4].Trim().Length == 0) { p_smResult.BllError("El Id de Carrera debe contener un valor."); return; } else { if (!double.TryParse(p_astrData[4], out numCheck)) { p_smResult.BllError("El Id de Carrera debe ser del tipo int."); return; } } #endregion #region Delete Student && Deactivate account if (p_astrData[18].Trim() != string.Empty) { switch(p_astrData[18].Trim().ToUpper()) { case IdMovimientoBaja: DeactivateAccount(Convert.ToInt32(p_astrData[0])); changedAccount = true; break; case IdMovimientoCambio: if (p_astrData[19].Trim() != string.Empty) TransferData(Convert.ToInt32(p_astrData[0].Trim()), Convert.ToInt32(p_astrData[19].Trim())); changedAccount = true; break; default: break; } } #endregion if (!changedAccount) { using (SqlCommand cmd = new SqlCommand(sp_ImportPadron, this.bdConnection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@DNI", Convert.ToInt32(p_astrData[0].Trim())); cmd.Parameters.AddWithValue("@ApellidoNombre", p_astrData[1].Trim().Replace('�', 'Ñ')); cmd.Parameters.AddWithValue("@IdSede", Convert.ToInt32(p_astrData[2])); cmd.Parameters.AddWithValue("@IdEstado", p_astrData[3].Trim()); cmd.Parameters.AddWithValue("@IdCarrera", Convert.ToInt32(p_astrData[4].Trim())); cmd.Parameters.AddWithValue("@CuatrimestreAnioIngreso", ((Object)p_astrData[5].Trim() ?? DBNull.Value)); cmd.Parameters.AddWithValue("@CuatrimestreAnioReincorporacion", ((Object)p_astrData[6].Trim() ?? DBNull.Value)); cmd.Parameters.AddWithValue("@IdCargo", 2); if (p_astrData[8].Trim().Length > 0) { cmd.Parameters.AddWithValue("@LimitacionRelevada", true); cmd.Parameters.AddWithValue("@Limitacion", p_astrData[8].Trim()); cmd.Parameters.AddWithValue("@LimitacionVision", p_astrData[9].Trim()); cmd.Parameters.AddWithValue("@Lentes", p_astrData[10].Trim()); cmd.Parameters.AddWithValue("@LimitacionAudicion", p_astrData[11].Trim()); cmd.Parameters.AddWithValue("@Audifonos", p_astrData[12].Trim()); cmd.Parameters.AddWithValue("@LimitacionMotriz", p_astrData[13].Trim()); cmd.Parameters.AddWithValue("@LimitacionAgarre", p_astrData[14].Trim()); cmd.Parameters.AddWithValue("@LimitacionHabla", p_astrData[15].Trim()); cmd.Parameters.AddWithValue("@Dislexia", p_astrData[16].Trim()); cmd.Parameters.AddWithValue("@LimitacionOtra", p_astrData[17].Trim()); } else { cmd.Parameters.AddWithValue("@LimitacionRelevada", false); cmd.Parameters.AddWithValue("@Limitacion", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionVision", DBNull.Value); cmd.Parameters.AddWithValue("@Lentes", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionMotriz", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionAudicion", DBNull.Value); cmd.Parameters.AddWithValue("@Audifonos", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionAgarre", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionHabla", DBNull.Value); cmd.Parameters.AddWithValue("@Dislexia", DBNull.Value); cmd.Parameters.AddWithValue("@LimitacionOtra", DBNull.Value); } cmd.Transaction = this.spTransaction; cmd.ExecuteNonQuery(); } } } catch (Exception l_expData) { // La captura de un error se reporta siempre como // grave y produce la cancelación del proceso. p_smResult.BllError(l_expData.ToString()); } finally { p_smResult.BllPop(); } }