public virtual ActionResult GetShippingOptions(RateCalculatorViewModel model) { LogI("GetShippingOptions, countryTo=" + model.ToAddress.Country + ", countryFrom=" + model.FromAddress.Country + ", weightLb" + model.WeightLb + ", weightOz=" + model.WeightOz); var shipmentProviderTypes = AccessManager.Company.ShipmentProviderInfoList.Where(p => p.Type == (int)ShipmentProviderType.FedexGeneral || p.Type == (int)ShipmentProviderType.FedexOneRate || p.Type == (int)ShipmentProviderType.Stamps) .Select(p => p.Type) .ToList(); var orderItems = new List <OrderItemRateInfo>() { new OrderItemRateInfo() { PackageWidth = model.PackageWidth, PackageHeight = model.PackageHeight, PackageLength = model.PackageLenght, Quantity = 1, } }; var shippingMethods = new List <ShippingMethodViewModel>(); foreach (var shipmentProviderId in shipmentProviderTypes) { var rateProvider = ServiceFactory.GetShipmentProviderByType((ShipmentProviderType)shipmentProviderId, LogService, Time, DbFactory, WeightService, AccessManager.Company.ShipmentProviderInfoList, null, null, null, null); var callResult = model.GetShippingOptionsModel(Db, Time, LogService, rateProvider, WeightService, ShippingService, orderItems); if (callResult.Status == CallStatus.Success) { shippingMethods.AddRange(callResult.Data); } else { var errorResult = new ValueResult <List <ShippingMethodViewModel> >(callResult.Status == CallStatus.Success, callResult.Message, callResult.Data); return(Json(errorResult, JsonRequestBehavior.AllowGet)); } } var result = new ValueResult <List <ShippingMethodViewModel> >(true, "", shippingMethods); return(Json(result, JsonRequestBehavior.AllowGet)); }
public IActionResult Index() { var model = new RateCalculatorViewModel(); return(View(model)); }