コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }