first commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using Landmark.OLA.Models.Addresses;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Xml;
|
||||
using USPS.Configuration;
|
||||
|
||||
namespace USPS.ApiCalls
|
||||
{
|
||||
public class AddressValidationRequestBuilder : IRequestBuildable
|
||||
{
|
||||
private readonly UspsSettings _settings;
|
||||
private readonly Address _address;
|
||||
|
||||
public AddressValidationRequestBuilder(UspsSettings settings, Address address)
|
||||
{
|
||||
_settings = settings;
|
||||
_address = address;
|
||||
}
|
||||
|
||||
public virtual string BuildAddressXML()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
var sw = new StringWriter(sb);
|
||||
var xml = new XmlTextWriter(sw);
|
||||
|
||||
xml.WriteStartElement("AddressValidateRequest");
|
||||
xml.WriteAttributeString("USERID", _settings.Username);
|
||||
xml.WriteStartElement("Address");
|
||||
// USPS considers unit numbers (ex: APT 204) to be Address1. Our app's models would consider these to be Address2. DO NOT CHANGE
|
||||
xml.WriteElementString("Address1", _address.Address2);
|
||||
xml.WriteElementString("Address2", _address.Address1);
|
||||
xml.WriteElementString("City", _address.City);
|
||||
xml.WriteElementString("State", _address.State.ToString());
|
||||
xml.WriteElementString("Zip5", _address.PostalCode);
|
||||
xml.WriteElementString("Zip4", "");
|
||||
xml.WriteEndElement();
|
||||
xml.WriteEndElement();
|
||||
xml.Close();
|
||||
|
||||
var query = HttpUtility.ParseQueryString(string.Empty);
|
||||
query["API"] = "Verify";
|
||||
query["XML"] = sb.ToString();
|
||||
|
||||
return query.ToString();
|
||||
}
|
||||
|
||||
public string BuildGET()
|
||||
{
|
||||
var xml = BuildAddressXML();
|
||||
|
||||
var message = _settings.EndpointUrl + xml;
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user