private static USPSAddressValidationResponse USPSValidate(USPSAddressValidationRequest request, Policies.USPSPolicy policy) { var s = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(USPSAddressValidationRequest), typeof(USPSAddressValidationResponse) }); var sb = new System.Text.StringBuilder(); using (var w = new System.IO.StringWriter(sb)) { s[0].Serialize(w, request); w.Flush(); } if (!policy.DebugMode) { //This Code is the 'real' code - commment out the live service call for the bootcamp String rawResponse = string.Empty; var url = new Uri($"{policy.Url}{sb.ToString()}"); using (var client = new HttpClient()) { rawResponse = client.GetStringAsync(url).Result; } if (rawResponse.Contains("<Error>")) { var rdr = XElement.Parse(rawResponse); var errMsg = (from item in rdr.Descendants("Description") select item.Value).Single(); return(null); } else { USPSAddressValidationResponse resp = null; using (var r = XmlReader.Create(new StringReader(rawResponse))) { resp = s[1].Deserialize(r) as USPSAddressValidationResponse; } return(resp); } } else { USPSAddressValidationResponse resp = new USPSAddressValidationResponse() { Address = new USPSAddress() { Id = "STUB", Address1 = "123 Plugin Lane", Address2 = String.Empty, City = "Bootcamp", State = "OH", Zip5 = "43015", Zip4 = "4333" } }; return(resp); } }
private static USPSAddressValidationResponse USPSValidate(USPSAddressValidationRequest request, Policies.USPSPolicy policy) { var s = System.Xml.Serialization.XmlSerializer.FromTypes(new Type[] { typeof(USPSAddressValidationRequest), typeof(USPSAddressValidationResponse) }); var sb = new System.Text.StringBuilder(); using (var w = new System.IO.StringWriter(sb)) { s[0].Serialize(w, request); w.Flush(); } String rawResponse = string.Empty; var url = new Uri($"{policy.Url}{sb.ToString()}"); //TODO: Externalize using (var client = new HttpClient()) { rawResponse = client.GetStringAsync(url).Result; } if (rawResponse.Contains("<Error>")) { var rdr = XElement.Parse(rawResponse); var errMsg = (from item in rdr.Descendants("Description") select item.Value).Single(); return(null); } else { USPSAddressValidationResponse resp = null; using (var r = XmlReader.Create(new StringReader(rawResponse))) { resp = s[1].Deserialize(r) as USPSAddressValidationResponse; } return(resp); } }