/// <summary> /// Get models for shipping by total records /// </summary> public virtual IList <ByTotalModel> GetShippingByTotalModels(int pageIndex, int pageSize, out int totalCount) { // data join would be much better but not possible here cause ShippingByTotalObjectContext cannot be shared across repositories var records = GetShippingByTotalRecords(pageIndex, pageSize); totalCount = records.TotalCount; if (records.Count <= 0) { return(new List <ByTotalModel>()); } var allStores = _storeService.GetAllStores(); var result = records.Select(x => { var store = allStores.FirstOrDefault(y => y.Id == x.StoreId); var shippingMethod = _shippingService.GetShippingMethodById(x.ShippingMethodId); var country = _countryService.GetCountryById(x.CountryId ?? 0); var stateProvince = _stateProvinceService.GetStateProvinceById(x.StateProvinceId ?? 0); var model = new ByTotalModel() { Id = x.Id, StoreId = x.StoreId, ShippingMethodId = x.ShippingMethodId, CountryId = x.CountryId, StateProvinceId = x.StateProvinceId, Zip = (x.Zip.HasValue() ? x.Zip : "*"), From = x.From, To = x.To, UsePercentage = x.UsePercentage, ShippingChargePercentage = x.ShippingChargePercentage, ShippingChargeAmount = x.ShippingChargeAmount, BaseCharge = x.BaseCharge, MaxCharge = x.MaxCharge, StoreName = (store == null ? "*" : store.Name), ShippingMethodName = (shippingMethod == null ? "".NaIfEmpty() : shippingMethod.Name), CountryName = (country == null ? "*" : country.Name), StateProvinceName = (stateProvince == null ? "*" : stateProvince.Name) }; return(model); }) .ToList(); return(result); }
public ActionResult RateUpdate(ByTotalModel model, GridCommand command) { if (!ModelState.IsValid) { return(new JsonResult { Data = "error" }); } var shippingByTotalRecord = _shippingByTotalService.GetShippingByTotalRecordById(model.Id); shippingByTotalRecord.Zip = model.Zip == "*" ? null : model.Zip; shippingByTotalRecord.From = model.From; shippingByTotalRecord.To = model.To; shippingByTotalRecord.UsePercentage = model.UsePercentage; shippingByTotalRecord.ShippingChargeAmount = model.ShippingChargeAmount; shippingByTotalRecord.ShippingChargePercentage = model.ShippingChargePercentage; shippingByTotalRecord.BaseCharge = model.BaseCharge; shippingByTotalRecord.MaxCharge = model.MaxCharge; _shippingByTotalService.UpdateShippingByTotalRecord(shippingByTotalRecord); return(RatesList(command)); }