public CIFAddressResponse CIFAddressCreation(MBaseMessage message) { CIFAddressResponse response = new CIFAddressResponse(); var resMessages = GetResponseMessage(message); foreach (var res in resMessages) { switch (res.Key.Trim()) { case nameof(CIFAddressResponse.CFCIFN): response.CFCIFN = StringToDigit(res.Value); break; case nameof(CIFAddressResponse.CFADSQ): response.CFADSQ = StringToDigit(res.Value); break; default: response.ErrorCode = res.Key; response.ErrorDescription = res.Value; break; } } return(response); }
public VerifyCitizenResponse VerifyCitizenID(MBaseMessage message) { VerifyCitizenResponse response = new VerifyCitizenResponse(); var resMessages = GetResponseMessage(message); foreach (var res in resMessages) { switch (res.Key.Trim()) { case nameof(VerifyCitizenResponse.CFCIFN): response.CFCIFN = StringToDigit(res.Value); break; case nameof(VerifyCitizenResponse.CFCIFT): response.CFCIFT = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFNA1): response.CFNA1 = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFNA1A): response.CFNA1A = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFSSNO): response.CFSSNO = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFSSCD): response.CFSSCD = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFCIDT): response.CFCIDT = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFASN1): response.CFASN1 = res.Value.Trim(); break; case nameof(VerifyCitizenResponse.CFASN2): response.CFASN2 = res.Value.Trim(); break; default: response.ErrorCode = res.Key; response.ErrorDescription = res.Value; break; } } return(response); }
public KycAccountLevelResponse CreateKycAccountLevelMessage(MBaseMessage message) { KycAccountLevelResponse response = new KycAccountLevelResponse(); var resMessages = GetResponseMessage(message); foreach (var res in resMessages) { switch (res.Key.Trim()) { case nameof(KycAccountLevelResponse.KCATYP): response.KCATYP = res.Value; break; case nameof(KycAccountLevelResponse.KCACCN): response.KCACCN = StringToDigit(res.Value); break; case nameof(KycAccountLevelResponse.DEPPURINV): response.DEPPURINV = res.Value; break; case nameof(KycAccountLevelResponse.DEPSRCINV): response.DEPSRCINV = res.Value; break; case nameof(KycAccountLevelResponse.KCSCOU): response.KCSCOU = res.Value; break; case nameof(KycAccountLevelResponse.KCOPAM): response.KCOPAM = StringToDigit(res.Value); break; default: response.ErrorCode = res.Key; response.ErrorDescription = res.Value; break; } } return(response); }
public KycCIFLevelResponse CreateKycCIFLevelMessage(MBaseMessage message) { KycCIFLevelResponse response = new KycCIFLevelResponse(); var resMessages = GetResponseMessage(message); foreach (var res in resMessages) { switch (res.Key.Trim()) { case nameof(KycCIFLevelResponse.KCCIFN): response.KCCIFN = StringToDigit(res.Value); break; case nameof(KycCIFLevelResponse.KCFRKL): response.KCFRKL = res.Value; break; case nameof(KycCIFLevelResponse.KCRRKL): response.KCRRKL = res.Value; break; case nameof(KycCIFLevelResponse.KCLRDT): response.KCLRDT = res.Value; break; case nameof(KycCIFLevelResponse.KCNRDT): response.KCNRDT = res.Value; break; case nameof(KycCIFLevelResponse.WDTEXT): response.WDTEXT = res.Value; break; default: response.ErrorCode = res.Key; response.ErrorDescription = res.Value; break; } } return(response); }
private byte[] CreateInputMessage(MBaseMessage message) { // Test //AS400UserId = "LHD8899201"; byte[] oByte = new byte[0]; try { int idx, pos, StartIndex, EndIndex; string DefaultValue; string transactionCode = message.HeaderTransaction.MBaseTranCode; string scenarioNumber = message.HeaderTransaction.ScenarioNumber; string actionMode = message.HeaderTransaction.ActionMode; string transactionMode = message.HeaderTransaction.TransactionMode; string numberOfRetrieve = message.HeaderTransaction.NoOfRecToRetrieve; string inputLength = message.HeaderTransaction.InputLength.ToString(); string responseLength = message.HeaderTransaction.ResponseLength.ToString(); int rqMsgLength = HeaderMessageLength + Convert.ToInt16(inputLength); //Logging.WriteLog("Request Msg Length:" + rqMsgLength.ToString()); oByte = new byte[rqMsgLength]; #region Header foreach (var header in message.HeaderMessages) { StartIndex = header.StartIndex; EndIndex = header.EndIndex; DefaultValue = header.DefaultValue; DataType dType = DataType.A; switch (header.DataType.ToUpper()) { case "B": dType = DataType.B; break; case "P": dType = DataType.P; if (DefaultValue == string.Empty) { DefaultValue = "0"; } break; case "S": dType = DataType.S; if (DefaultValue == string.Empty) { DefaultValue = "0"; } break; } byte[] data = ConvertData(DefaultValue, StartIndex, EndIndex, dType); idx = 0; for (pos = StartIndex - 1; pos < EndIndex; pos++) { oByte[pos] = data[idx]; idx++; } } #endregion foreach (var input in message.InputMessages) { StartIndex = input.StartIndex + HeaderMessageLength; EndIndex = input.EndIndex + HeaderMessageLength; DefaultValue = input.DefaultValue; DataType dType = DataType.A; switch (input.DataType.ToUpper()) { case "B": dType = DataType.B; break; case "P": dType = DataType.P; if (DefaultValue == "") { DefaultValue = "0"; } break; case "S": dType = DataType.S; if (DefaultValue == "") { DefaultValue = "0"; } break; } byte[] data = ConvertData(DefaultValue, StartIndex, EndIndex, dType); idx = 0; for (pos = StartIndex - 1; pos < EndIndex; pos++) { oByte[pos] = data[idx]; idx++; } } } catch (Exception ex) { throw ex; } return(oByte); }
private Dictionary <string, string> GetResponseMessage(MBaseMessage message) { Dictionary <string, string> dictResult = new Dictionary <string, string>(); int inputLength = Convert.ToInt16(message.HeaderTransaction.InputLength); int responseLength = Convert.ToInt16(message.HeaderTransaction.ResponseLength); TcpClient clientSocket = new TcpClient { ReceiveBufferSize = HeaderMessageLength + inputLength + responseLength, ReceiveTimeout = ReceiveTimeout, SendTimeout = SendTimeout }; try { if (!clientSocket.Connected) { clientSocket.Connect(ServerHost, ServerPort); } if (clientSocket.Connected) { //Logging.WriteLog("Connect [Host:" + ServerHost + "] [Port:" + ServerPort + "]"); //Logging.WriteLog("Connected"); NetworkStream serverStream = clientSocket.GetStream(); //Logging.WriteLog($"Create Input Message TranCode: {message.HeaderTransaction.MBaseTranCode}"); Logging.WriteLog($"MBase Ref: [{message.HeaderMessages.Where(s => s.FieldName == nameof(MBaseHeaderMessage.HDRNUM)).Select(s => s.DefaultValue).FirstOrDefault()}]"); byte[] headParameter = CreateInputMessage(message); //Logging.WriteLog("Write Stream [Length:" + headParameter.Length + "]"); serverStream.Write(headParameter, 0, headParameter.Length); serverStream.Flush(); int rsMsgLength = HeaderMessageLength + inputLength + responseLength; //Logging.WriteLog("Read Stream [Length:" + rsMsgLength.ToString() + "]"); byte[] outStream = new byte[rsMsgLength]; serverStream.Read(outStream, 0, (int)clientSocket.ReceiveBufferSize); bool inputMessageValid = CheckInputMessageValid(ref outStream, ref dictResult); if (inputMessageValid) { //Logging.WriteLog("Write Response"); foreach (var res in message.ResponseMessages) { int startIndex = Convert.ToInt32(res.StartIndex) - 1; int endIndex = Convert.ToInt32(res.EndIndex) - 1; startIndex = (HeaderMessageLength) + startIndex; endIndex = (HeaderMessageLength) + endIndex; string data_type = res.DataType; DataType dType = DataType.A; if (data_type == nameof(DataType.B)) { dType = DataType.B; } else if (data_type == nameof(DataType.A)) { dType = DataType.A; } else if (data_type == nameof(DataType.P)) { dType = DataType.P; } else //if (dr.ToString() == "S") { dType = DataType.S; } dictResult.Add(res.FieldName.Trim(), ConvertDataResponse(outStream, startIndex, endIndex, dType).Trim()); } } } else { dictResult.Add(ResponseCode.NTW0001, $"Cannot connect to { ServerHost }"); } } catch (Exception ex) { dictResult.Add(ResponseCode.MBX0001, string.Format("Message:{0} : {1}", ex.Message, ex.StackTrace)); } finally { if (clientSocket != null) { clientSocket.Close(); } } return(dictResult); }