private void ProcesarArchivo(string archivo) { MC_RPuntoMedicionFormato formato = null; ResumenLecturaMedidor resumen = null; GetFormatoLectura(archivo, out resumen, out formato); if (formato != null) { resumen.PkCodFormato = formato.FkCodFormato; resumen.ArchivoLectura = Path.GetFileName(archivo); if (_lectores.ContainsKey(resumen.PkCodFormato)) { ParametrosLectura parametros = new ParametrosLectura(); parametros.DetalleMagElec = OraDalMC_RPuntoMedicionFormatoDetalleMgr.Instancia.GetListaDefMagElec(formato.PkCodRptoMedFto); try { ResultadoLectura res = _lectores[resumen.PkCodFormato].Leer(archivo, parametros); AplicarMultiplicadores(res, parametros); ValidadorLecturaMgr.Instancia.AplicarValidaciones(resumen, res, parametros, TipoValidador.Consistencia); if (ValidadorLecturaMgr.Instancia.AplicarValidaciones(resumen, res, parametros, TipoValidador.Cargado)) { Guardar(resumen, res, parametros); } resumen.RegistrosArchivo = res.Registros.Count; if (res.Registros.Count > 0) { resumen.FechaHoraPrimerRegistro = res.Registros[0].Fecha.ToString("dd/MMM/yyyy") + " " + res.Registros[0].Hora; resumen.FechaHoraUltimoRegistro = res.Registros[res.Registros.Count - 1].Fecha.ToString("dd/MMM/yyyy") + " " + res.Registros[res.Registros.Count - 1].Hora; } OnArchivoProcesado(resumen); } catch (Exception ex) { PistaMgr.Instance.Error("MC", ex); } _cantidadProcesados++; } } }
private void GetFormatoLectura(string archivo, out ResumenLecturaMedidor resumenLectura, out MC_RPuntoMedicionFormato formato) { resumenLectura = null; formato = null; AsegurarTablaPuntosMedicion(); foreach (DataRow row in _tablaPuntosMedicion.Rows) { if (formato == null) { resumenLectura = (ResumenLecturaMedidor)_tablaResumenes.NewRow(); resumenLectura.LeerDatosMedidor(row); DataTable formatosAsociados = OraDalMC_RPtoMedFtoMgr.Instancia.GetFormatos(resumenLectura.PkCodPuntoMedicion); foreach (DataRow rf in formatosAsociados.Rows) { string nombreArchivoPrototipo = ObjetoDeNegocio.GetValor <string>(rf["NOMBRE_ARCHIVO"]); nombreArchivoPrototipo = nombreArchivoPrototipo.ToLower(); string a = Path.GetFileName(archivo.ToLower()); if (a == nombreArchivoPrototipo) { formato = new MC_RPuntoMedicionFormato(rf); break; } else if (nombreArchivoPrototipo.IndexOf('[') >= 0) { if (TienenMismoPatron(nombreArchivoPrototipo, a)) { formato = new MC_RPuntoMedicionFormato(rf); break; } } } } else { break; } } }
public DataTable GetMagnitudesElectricas(MC_RPuntoMedicionFormato rMedFto) { return(GetMagnitudesElectricas(rMedFto.PkCodRptoMedFto)); }
public void Guardar(MC_RPuntoMedicionFormato obj) { OracleCommand cmd = null; string sql = string.Empty; if (obj.EsNuevo) { Pista p = PistaMgr.Instance.Info("DALSisFalla", obj.GetEstadoString()); obj.SecLog = (long)p.PK_SecLog; sql = @"INSERT INTO F_MC_RPTO_MED_FTO ( PK_COD_RPTO_MED_FTO, FK_COD_PUNTO_MEDICION, FK_COD_MEDIDOR, FK_COD_FORMATO, NOMBRE_ARCHIVO, PRIORIDAD_LECTURA, CONTIENE_FIN_INTERVALO, FECHA_INICIO, FECHA_FIN, D_COD_ESTADO, SEC_LOG ) VALUES ( :PK_COD_RPTO_MED_FTO, :FK_COD_PUNTO_MEDICION, :FK_COD_MEDIDOR, :FK_COD_FORMATO, :NOMBRE_ARCHIVO, :PRIORIDAD_LECTURA, :CONTIENE_FIN_INTERVALO, :FECHA_INICIO, :FECHA_FIN, :D_COD_ESTADO, :SEC_LOG )"; } else { sql = "UPDATE F_MC_RPTO_MED_FTO SET " + "PK_COD_RPTO_MED_FTO=:PK_COD_RPTO_MED_FTO ," + "FK_COD_PUNTO_MEDICION=:FK_COD_PUNTO_MEDICION ," + "FK_COD_MEDIDOR=:FK_COD_MEDIDOR ," + "FK_COD_FORMATO=:FK_COD_FORMATO ," + "NOMBRE_ARCHIVO=:NOMBRE_ARCHIVO ," + "PRIORIDAD_LECTURA=:PRIORIDAD_LECTURA ," + "CONTIENE_FIN_INTERVALO=:CONTIENE_FIN_INTERVALO ," + "FECHA_INICIO=:FECHA_INICIO ," + "FECHA_FIN=:FECHA_FIN ," + "D_COD_ESTADO=:D_COD_ESTADO ," + "SEC_LOG=:SEC_LOG WHERE "; } cmd = CrearCommand(); cmd.CommandText = sql; cmd.BindByName = true; cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_PK_COD_RPTO_MED_FTO, OracleDbType.Int64, obj.PkCodRptoMedFto, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_FK_COD_PUNTO_MEDICION, OracleDbType.Int64, obj.FkCodPuntoMedicion, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_FK_COD_MEDIDOR, OracleDbType.Int64, obj.FkCodMedidor, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_FK_COD_FORMATO, OracleDbType.Int64, obj.FkCodFormato, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_NOMBRE_ARCHIVO, OracleDbType.Varchar2, obj.NombreArchivo, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_PRIORIDAD_LECTURA, OracleDbType.Int16, obj.PrioridadLectura, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_CONTIENE_FIN_INTERVALO, OracleDbType.Int16, obj.ContieneFinIntervalo, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_FECHA_INICIO, OracleDbType.Date, obj.FechaInicio, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_FECHA_FIN, OracleDbType.Date, obj.FechaFin, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_D_COD_ESTADO, OracleDbType.Varchar2, obj.DCodEstado, ParameterDirection.Input); cmd.Parameters.Add(MC_RPuntoMedicionFormato.C_SEC_LOG, OracleDbType.Int64, obj.SecLog, ParameterDirection.Input); try { cmd.ExecuteNonQuery(); obj.EsNuevo = false; } catch (Exception exception) { PistaMgr.Instance.Error("DALSisFalla", exception); } finally { DisposeCommand(cmd); } }