/// <summary> /// Adiciona un campo de datos al mensaje Iso8583 /// </summary> /// <param name="pi_sPosicion">Posición del campo de datos</param> /// <param name="pi_sValor">Valor a adicionar en el campo de datos</param> /// <returns>Retorna true si se adiciono el nuevo campo de datos o false si se genero un error y no se pudo agregar</returns> /// <remarks>Fedex 20170608</remarks> public ValidacionCampoDatos adicionarCampoDatos(int pi_sPosicion, string pi_sValor) { if (pi_sPosicion > 1 && pi_sPosicion <= 128) { var vl_cCampos = new Validaciones(); var vl_cRespuesta = vl_cCampos.FormatoCampo(pi_sPosicion, pi_sValor); if (vl_cRespuesta.Respuesta == ValidacionCampoDatos.Exitoso) { CampoDatos vl_sCampo = new CampoDatos(); vl_sCampo.ValorOriginal = pi_sValor; vl_sCampo.ValorEnvio = vl_cRespuesta.ValorEnvio; if (CamposDatos[pi_sPosicion] == null) { CamposDatos[pi_sPosicion] = vl_sCampo; return(ValidacionCampoDatos.Exitoso); } else { return(ValidacionCampoDatos.CampoDatosExiste); } } else { return(vl_cRespuesta.Respuesta); } } else { return(ValidacionCampoDatos.PosicionInvalida); } }
/// <summary> /// Adiciona un campo de datos al mensaje Iso8583 sin realizar validaciones /// </summary> /// <param name="pi_sPosition">Posición del campo de datos</param> /// <param name="pi_sValue">Valor a adicionar en el campo de datos</param> /// <remarks>Fedex 20170608</remarks> private void adicionarCampoDatosSinValidar(int pi_sPosition, string pi_sValue) { CampoDatos vl_sCampo = new CampoDatos(); vl_sCampo.ValorOriginal = pi_sValue; vl_sCampo.ValorEnvio = pi_sValue; CamposDatos[pi_sPosition] = vl_sCampo; }
/// <summary> /// Obtiene la información de un campo de datos de una posición determinada /// </summary> /// <param name="pi_iPosicion">Posición del campo de datos</param> /// <returns>Fedex 20170608</returns> public CampoDatos obtenerCampoDatos(int pi_iPosicion) { CampoDatos vl_oCampoDatos = null; if (CamposDatos[pi_iPosicion] != null) { vl_oCampoDatos = (CampoDatos)CamposDatos[pi_iPosicion]; } return(vl_oCampoDatos); }
public string generarMensaje() { StringBuilder pi_sbMensaje = new StringBuilder(); bool vl_bUsaBitman2 = false; string vl_sEncabezado = string.Empty; string vl_sBitmap = string.Empty; string vl_sBitmap1 = "0000000000000000000000000000000000000000000000000000000000000000"; string vl_sBitmap2 = "0000000000000000000000000000000000000000000000000000000000000000"; for (int vl_iPosicion = 2; vl_iPosicion <= 128; vl_iPosicion++) { if (CamposDatos[vl_iPosicion] != null) { CampoDatos vl_sCampo = (CampoDatos)CamposDatos[vl_iPosicion]; pi_sbMensaje.Append(vl_sCampo.ValorEnvio); if (vl_iPosicion <= 64) { vl_sBitmap1 = vl_sBitmap1.Insert(vl_iPosicion - 1, "1"); vl_sBitmap1 = vl_sBitmap1.Remove(vl_iPosicion, 1); } else { vl_sBitmap2 = vl_sBitmap2.Insert(vl_iPosicion - 1 - 64, "1"); vl_sBitmap2 = vl_sBitmap2.Remove(vl_iPosicion - 64, 1); vl_bUsaBitman2 = true; } } } if (vl_bUsaBitman2) { vl_sBitmap1 = vl_sBitmap1.Insert(0, "1"); vl_sBitmap1 = vl_sBitmap1.Remove(1, 1); vl_sBitmap1 = vl_sBitmap1 + vl_sBitmap2; } int vl_iContador = 0; while (vl_iContador < vl_sBitmap1.Length) { vl_sBitmap += Convert.ToInt32(vl_sBitmap1.Substring(vl_iContador, 4), 2).ToString("X"); vl_iContador += 4; } if (MTI.StartsWith("02")) { vl_sEncabezado = EncabezadoTransaccionesFinancieras; } else if (MTI.StartsWith("08")) { vl_sEncabezado = EncabesajoMensajesAdministracionRed; } return(string.Concat(vl_sEncabezado, MTI, vl_sBitmap, pi_sbMensaje.ToString())); }
/// <summary> /// Generar el mensaje sin los 2 byte de la longitud /// </summary> /// <returns>Retorna el mensaje</returns> /// <remarks>Fedex 20170608</remarks> private string generarMensajeOld() { StringBuilder pi_sbMensaje = new StringBuilder(); if (MTI.StartsWith("02")) { pi_sbMensaje.Append(EncabezadoTransaccionesFinancieras); } else if (MTI.StartsWith("08")) { pi_sbMensaje.Append(EncabesajoMensajesAdministracionRed); } pi_sbMensaje.Append(MTI); pi_sbMensaje.Append(generarBitmaps()); for (int vl_iContador = 2; vl_iContador <= 128; vl_iContador++) { if (CamposDatos[vl_iContador] != null) { CampoDatos vl_sCampo = (CampoDatos)CamposDatos[vl_iContador]; pi_sbMensaje.Append(vl_sCampo.ValorEnvio); } } return(pi_sbMensaje.ToString()); }