public ActionResult EditOption(ProductOptionViewModel viewModel) { if (ModelState.IsValid) { var model = db.Product_Options.Find(viewModel.id); model.Name = viewModel.name; model.Description = viewModel.description; model.ProductId = viewModel.productId; model.PreviewImageId = viewModel.previewImageId; model.Status = viewModel.status; model.Product_Variants.Clear(); if (viewModel.variants != null) { foreach (var variant in viewModel.variants) { foreach (var variantId in variant.Value) { var variantModel = db.Product_Variants.Find(variantId); if (variantModel != null) { variantModel.Product_Options.Add(model); } } } } model.Files.Clear(); if (viewModel.imageFiles != null) { foreach (var file in viewModel.imageFiles) { var fileModel = db.Files.Find(file); if (fileModel != null) { model.Files.Add(fileModel); } } } model.Product_Options_Details.Clear(); if (viewModel.details != null) { foreach (var pair in viewModel.details) { if (pair.Key != string.Empty && pair.Value != string.Empty) { var detailModel = new Product_Options_Details { Name = pair.Key, Value = pair.Value, }; db.Product_Options_Details.Add(detailModel); model.Product_Options_Details.Add(detailModel); } } } db.Entry(model).State = System.Data.Entity.EntityState.Modified; if (db.SaveChanges() > 0) { return(RedirectToAction("CreateOption", new { productId = model.ProductId })); } } var variantCategories = db.Categories.Where(o => o.CategoryTypeId == (int)CategoryTypes.ProductVariant); ViewBag.VariantCategories = variantCategories; return(View(viewModel)); }
public ActionResult CreateOption(ProductOptionViewModel viewModel) { if (ModelState.IsValid) { var model = new Product_Option { Name = viewModel.name, Description = viewModel.description, ProductId = viewModel.productId, PreviewImageId = viewModel.previewImageId, Status = viewModel.status, Files = new List <File>(), CreateUserId = User.Identity.GetUserId(), CreateTime = DateTime.Now }; if (viewModel.variants != null) { foreach (var variant in viewModel.variants) { foreach (var variantId in variant.Value) { var variantModel = db.Product_Variants.Find(variantId); if (variantModel != null) { variantModel.Product_Options.Add(model); } } } } if (viewModel.imageFiles != null) { foreach (var file in viewModel.imageFiles) { var fileModel = db.Files.Find(file); if (fileModel != null) { model.Files.Add(fileModel); } } } if (viewModel.details != null) { foreach (var pair in viewModel.details) { if (pair.Key != string.Empty && pair.Value != string.Empty) { var detailModel = new Product_Options_Details { Name = pair.Key, Value = pair.Value, }; db.Product_Options_Details.Add(detailModel); model.Product_Options_Details.Add(detailModel); } } } db.Product_Options.Add(model); db.SaveChanges(); return(RedirectToAction("CreateOption", new { productId = model.ProductId, success = true, successObjectName = model.Name })); } var variantCategories = db.Categories.Where(o => o.CategoryTypeId == (int)CategoryTypes.ProductVariant); ViewBag.VariantCategories = variantCategories; var product = db.Products.Find(viewModel.productId); var options = product.Product_Options; ViewBag.Options = options; return(View(viewModel)); }