private void InterpretarLinea(string pTipoRegistro, string pCadena, Statement pLinea, string pNumCuenta, int pIdArchivo, int pIdMovimiento) { StatementWriter cs = new StatementWriter(); DataTable resultado = new DataTable(); if (pCadena.Length >= pLinea.Fin - pLinea.Inicio) { List <StatementDetail> lstDetalle = cs.ObtenerDetallePosiciones(pTipoRegistro); StringBuilder Valores = new StringBuilder(); string cadenaAux = string.Empty; int posicionAux = 0; foreach (StatementDetail detalle in lstDetalle) { cadenaAux = pCadena.Substring(posicionAux, detalle.Longitud); cadenaAux = cadenaAux.Replace(" ", "¬"); cadenaAux = cadenaAux.Replace("&", "&"); Valores.Append(cadenaAux); Valores.Append("|"); posicionAux += detalle.Longitud; } if (Valores.ToString().EndsWith("|")) { Valores.Remove(Valores.Length - 1, 1); } //Insertar en tabla resultado = cs.InsertarDetalle(pIdArchivo, pIdMovimiento, pTipoRegistro, Valores.ToString()); if (resultado != null && resultado.Rows.Count > 0) { //resultado.Rows[0][""].ToString(); } } else { //Insertar en log de errores } }
private int InterpretarEncabezado(string pNombreArchivo, int pNumLineasArchivo, string pTipoRegistro, string pCadena, Statement pEncabezado) { CultureInfo ci = new CultureInfo("es-MX"); int idArchivo = 0; List <string> lstRuta = pNombreArchivo.Split('\\').ToList <string>(); List <string> lstNombreSeparado = lstRuta[lstRuta.Count - 1].Split('_').ToList <string>(); List <string> lstNombre = lstNombreSeparado[lstNombreSeparado.Count - 1].Split('.').ToList <string>(); string fechaArchivo112 = lstNombre[0]; DateTime fechaArchivo; DateTime.TryParseExact(fechaArchivo112, "yyyyMMdd", ci, DateTimeStyles.None, out fechaArchivo); short Anno = 0; short Mes = 0; short.TryParse(fechaArchivo.Year.ToString(), out Anno); short.TryParse(fechaArchivo.Month.ToString(), out Mes); StatementWriter cs = new StatementWriter(); if (pCadena.Length >= pEncabezado.Fin - pEncabezado.Inicio) { List <StatementDetail> lstDetalle = cs.ObtenerDetallePosiciones(pTipoRegistro); StringBuilder Valores = new StringBuilder(); string cadenaAux = string.Empty; int posicionAux = 0; string TipoRegistro = string.Empty; string FechaProceso = string.Empty; string NumeroSecuencialArchivo = string.Empty; string CodigoProducto = string.Empty; string DescripcionProducto = string.Empty; foreach (StatementDetail detalle in lstDetalle) { cadenaAux = pCadena.Substring(posicionAux, detalle.Longitud); cadenaAux = cadenaAux.Replace(" ", "¬"); cadenaAux = cadenaAux.Replace("&", "&"); switch (detalle.Posicion) { case 1: TipoRegistro = cadenaAux; break; case 2: FechaProceso = cadenaAux; break; case 3: NumeroSecuencialArchivo = cadenaAux; break; case 4: CodigoProducto = cadenaAux; break; case 5: DescripcionProducto = cadenaAux; break; default: break; } posicionAux += detalle.Longitud; } //Insertar en tabla DataTable dt = cs.InsertarEncabezado(false, 0, lstRuta[lstRuta.Count - 1], 0, 0, Anno, Mes, TipoRegistro, FechaProceso, NumeroSecuencialArchivo, CodigoProducto, DescripcionProducto); if (dt != null && dt.Rows.Count > 0) { int.TryParse(dt.Rows[0]["IdArchivo"].ToString(), out idArchivo); } } else { //Insertar en log de errores } return(idArchivo); }