public string BuildQueryString(IMessage request, ProtocolMessage protocolMessage, ProtocolVersion protocolVersion) { var msg = new NameValueCollection(); foreach (var field in protocolMessage.Required()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = typeof(DataObject).GetProperty(propName); msg.Add(field.CanonicalName(), propName.Equals("VpsProtocol") ? protocolVersion.VersionString() : propInfo.GetValue(request, null).ToString()); } if (protocolMessage.Optional() == null) return BuildQueryString(msg); foreach (var field in protocolMessage.Optional()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = typeof(DataObject).GetProperty(propName); msg.Add(field.CanonicalName(), propName.Equals("VpsProtocol") ? protocolVersion.VersionString() : propInfo.GetValue(request, null).ToString()); } return BuildQueryString(msg); }
public static NameValueCollection ConvertSagePayMessageToNameValueCollection(ProtocolMessage protocolMessage, Type type, IMessage message, ProtocolVersion protocolVersion) { var msg = new NameValueCollection(); foreach (var field in protocolMessage.Required()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = message.GetType().GetProperty(propName); if (propName.Equals("VpsProtocol")) msg.Add(field.CanonicalName(), protocolVersion.VersionString()); else { if (CheckSagePayProtocolVersion(type, propName, protocolVersion)) msg.Add(field.CanonicalName(), propInfo.GetValue(message, null).ToString()); } } foreach (var field in protocolMessage.Optional()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = message.GetType().GetProperty(propName); if (propInfo.GetValue(message, null) == null) continue; if (CheckSagePayProtocolVersion(type, propName, protocolVersion)) msg.Add(field.CanonicalName(), propInfo.GetValue(message, null).ToString()); } return msg; }
public NameValueCollection Validation(ProtocolMessage protocolMessage, Type type, IMessage message, ProtocolVersion protocolVersion) { var errorMessages = new NameValueCollection(); foreach (var field in protocolMessage.Required()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = message.GetType().GetProperty(propName); if (propName.Equals("VpsProtocol")) continue; if (CheckSagePayProtocolVersion(type, propName, protocolVersion)) Validate(field, errorMessages, (propInfo.GetValue(message, null) != null ? propInfo.GetValue(message, null).ToString() : string.Empty), true); } foreach (var field in protocolMessage.Optional()) { var propName = mapCols[field.CanonicalName()] ?? field.CanonicalName(); var propInfo = message.GetType().GetProperty(propName); if (propInfo.GetValue(message, null) == null || propInfo.GetValue(message, null).ToString() == string.Empty) continue; if (CheckSagePayProtocolVersion(type, propName, protocolVersion)) Validate(field, errorMessages, (propInfo.GetValue(message, null) != null ? propInfo.GetValue(message, null).ToString() : string.Empty), false); } return errorMessages; }