Skip to content

Instantly share code, notes, and snippets.

@paaschpa
Created February 13, 2014 16:07
Show Gist options
  • Save paaschpa/8977938 to your computer and use it in GitHub Desktop.
Save paaschpa/8977938 to your computer and use it in GitHub Desktop.
public class TransitTimeCalculator
{
public IList<TransitTimeResponse> UpsGround()
{
var ret = new List<TransitTimeResponse>();
Upsrates Rates1 = new Upsrates();
Rates1.UPSAccount.AccessKey = {myKey}; //removed for security purposes
Rates1.UPSAccount.AccountNumber = {myAcctNumber};
Rates1.UPSAccount.UserId = {myUserId}
Rates1.UPSAccount.Password = {myPassword}
Rates1.UPSAccount.Server = "https://wwwcie.ups.com/webservices/Rate";
Rates1.SenderAddress.City = "Grayslake";
Rates1.SenderAddress.State = "IL";
Rates1.SenderAddress.ZipCode = "60030";
Rates1.RecipientAddress.City = "Holtsville";
Rates1.RecipientAddress.State = "NY";
Rates1.RecipientAddress.ZipCode = "00501";
Rates1.Packages.Add(new PackageDetail());
Rates1.Packages[0].PackagingType = TPackagingTypes.ptYourPackaging;
Rates1.Packages[0].Height = 1;
Rates1.Packages[0].Width = 1;
Rates1.Packages[0].Length = 1;
Rates1.Packages[0].Weight = "1.0";
Rates1.RequestedService = ServiceTypes.stUPSGround;
Rates1.GetRates();
foreach (var rate in Rates1.Services)
{
if (string.IsNullOrEmpty(rate.TransitTime))
continue;//Guard for when can't determine transit time/delivery date (also: DeliveryDate always seems to be empty)
var deliveryDate = DateTime.Now.AddDays(int.Parse(rate.TransitTime)).Date;
ret.Add(new TransitTimeResponse
{
ServiceLevel = rate.ServiceTypeDescription,
TransitDays = int.Parse(rate.TransitTime),
ShippedDate = DateTime.Now,
DeliveryDate = deliveryDate
});
}
return ret;
}
}
public class TransitTimeResponse
{
public string ServiceLevel { get; set; }
public int TransitDays { get; set; }
public DateTime ShippedDate { get; set; }
public DateTime DeliveryDate { get; set; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment