public static ProductFullView ConvertToProductFullView(ecom_Products product)
        {
            var productFullView = new ProductFullView()
            {
                Id                = product.Id,
                ProductCode       = product.ProductCode,
                Name              = product.Name,
                Price             = product.Price,
                Quantity          = product.Quantity,
                Unit              = product.Unit,
                BrandId           = product.BrandId,
                CoverImageId      = product.CoverImageId,
                Description       = product.Description,
                Description2      = product.Description2,
                Specification     = product.Specification,
                TotalView         = product.TotalView,
                TotalBuy          = product.TotalBuy,
                Tags              = product.Tags,
                IsNewProduct      = product.IsNewProduct,
                IsBestSellProduct = product.IsBestSellProduct,
                SortOrder         = product.SortOrder,
                Status            = product.Status,
                //CreatedBy = product.CreatedBy.to,
                //CreatedDate = product.CreatedDate,
                //ModifiedBy = product.ModifiedBy,
                //ModifiedDate = product.ModifiedDate
                //share_Images = product.share_Images.ConvertToImageProductViewModels()
            };

            return(productFullView);
        }
 public ActionResult Edit(ProductFullView product)
 {
     if (ModelState.IsValid)
     {
         bool isSuccess = service.UpdateProduct(product);
         if (isSuccess)
         {
             return(RedirectToAction("Index"));
         }
     }
     if (product.Status != null)
     {
         var status = (Define.Status)product.Status;
         PopulateStatusDropDownList(status);
     }
     else
     {
         PopulateStatusDropDownList();
     }
     ViewBag.BrandId = PopulateListBrand(product.BrandId);
     return(View(product));
 }
Beispiel #3
0
        /// <summary>
        /// Update product
        /// </summary>
        /// <param name="product"></param>
        /// <returns></returns>
        public bool UpdateProduct(ProductFullView productViewModel)
        {
            ecom_Products product = db.GetProductById(productViewModel.Id);

            if (product == null)
            {
                return(false);
            }
            else
            {
                product.ProductCode       = productViewModel.ProductCode;
                product.Name              = productViewModel.Name;
                product.Price             = productViewModel.Price;
                product.Quantity          = productViewModel.Quantity;
                product.Unit              = productViewModel.Unit;
                product.BrandId           = productViewModel.BrandId;
                product.Description       = productViewModel.Description;
                product.Description2      = productViewModel.Description2;
                product.Tags              = productViewModel.Tags;
                product.IsNewProduct      = productViewModel.IsNewProduct;
                product.IsBestSellProduct = productViewModel.IsBestSellProduct;
                product.SortOrder         = productViewModel.SortOrder;
                product.Status            = productViewModel.Status;
                product.ModifiedDate      = DateTime.Now;

                if (productViewModel.CategoryId == null)
                {
                    product.ecom_Categories = new List <ecom_Categories>();
                }
                else
                {
                    var selectedCategories = new HashSet <int>(productViewModel.CategoryId);
                    var categoriesProduct  = new HashSet <int>(product.ecom_Categories.Select(c => c.Id));
                    foreach (var category in categoryRepository.GetAllCategories())
                    {
                        if (selectedCategories.Contains(category.Id))
                        {
                            if (!categoriesProduct.Contains(category.Id))
                            {
                                product.ecom_Categories.Add(category);
                            }
                        }
                        else
                        {
                            if (categoriesProduct.Contains(category.Id))
                            {
                                product.ecom_Categories.Remove(category);
                            }
                        }
                    }
                }
                if (productViewModel.ProductGroupId == null)
                {
                    product.ecom_ProductGroups = new List <ecom_ProductGroups>();
                }
                else
                {
                    var selectedGroups = new HashSet <int>(productViewModel.ProductGroupId);
                    var GroupsProduct  = new HashSet <int>(product.ecom_ProductGroups.Select(g => g.Id));
                    foreach (var group in productGroupRepository.GetAllAvailableGroups())
                    {
                        if (selectedGroups.Contains(group.Id))
                        {
                            if (!GroupsProduct.Contains(group.Id))
                            {
                                product.ecom_ProductGroups.Add(group);
                            }
                        }
                        else
                        {
                            if (GroupsProduct.Contains(group.Id))
                            {
                                product.ecom_ProductGroups.Remove(group);
                            }
                        }
                    }
                }

                db.Save();
                RefreshAll();
                return(true);
            }
        }