using System; using System.Data; using System.Collections.Generic; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class Fedex : ShippingBase { public Fedex() : base() { } public override List GetShippingMethods(string startzip, string endzip) { ShoppingCart ShoppingCart = ShoppingCart.Current; dotnetSHIP.Ship ship = new dotnetSHIP.Ship(); ship.FedExURL = Configuration.Get("Shipping.FedEx.URL"); //ship.FedExLogin = "186129113,1783977"; // Account number, meter number ship.FedExLogin = Configuration.Get("Shipping.FedEx.AccountNumber") + "," + Configuration.Get("Shipping.FedEx.MeterNumber"); ship.OrigZipPostal = startzip; ship.OrigStateProvince = Configuration.Get("Shipping.FedEx.OriginState"); ship.OrigCountry = "US"; ship.DestZipPostal = endzip; ship.DestCountry = "US"; ship.DestStateProvince = ShoppingCart.ShippingState; ship.FedExGround = true; if (ShoppingCart.TotalWeight == 0) ship.Weight = 1; else ship.Weight = (float)ShoppingCart.TotalWeight; ship.Rate("FedEx"); ship.Sort = "price"; if ((ship.Error != null) && (ship.Error != "")) { throw new Exception(ship.Error); } else { List listSM = new List(); foreach (dotnetSHIP.Rate r in ship.Rates) { ShippingMethod sm = null; //TimeSpan ts = DateTime.Parse(r.ShipTime).Subtract(DateTime.Now); switch (r.Name) { case "FEDEX2DAY": sm = new ShippingMethod("Fedex 2 Day", Decimal.Parse(r.Charge)); break; case "FEDEXEXPRESSSAVER": sm = new ShippingMethod("Fedex 3 Day", Decimal.Parse(r.Charge)); break; case "GROUNDHOMEDELIVERY": sm = new ShippingMethod("Fedex Ground", Decimal.Parse(r.Charge)); break; default: break; } if (sm != null) { sm.DaysInTransit = r.ShipTime; listSM.Add(sm); } } return listSM; } } }