private static void SaveProducts(EditPackage editPackage, int packageID) { var curList = PackageProducts.GetByPackageID(packageID); foreach (var product in editPackage.Products) { var packageProduct = Mapper.Map <PackageProduct>(product); if (packageProduct.ProductVarientID == -1) { packageProduct.ProductVarientID = null; } if (!curList.Any(item => item.ID == product.ID)) { packageProduct.PackageID = packageID; packageProduct.NewPrice = packageProduct.NewPrice * (ExtensionMethods.IsRial ? 1 : 10); packageProduct.OldPrice = packageProduct.OldPrice * (ExtensionMethods.IsRial ? 1 : 10); PackageProducts.Insert(packageProduct); } else { PackageProducts.Update(packageProduct); curList.Remove(curList.Single(cls => cls.ID == packageProduct.ID)); } } foreach (var item in curList) { PackageProducts.Delete(item.ID); } }
public ActionResult Edit(int?id) { EditPackage editPackage; if (id.HasValue) { editPackage = Mapper.Map <EditPackage>(Packages.GetByID(id.Value)); var products = PackageProducts.GetByPackageID(editPackage.ID); editPackage.Text = HttpUtility.HtmlDecode(editPackage.Text); editPackage.Images = PackageImages.GetByPackageID(editPackage.ID); editPackage.Products = Mapper.Map <List <EditPackageProduct> >(products); } else { editPackage = new EditPackage(); } return(View(editPackage)); }