Exemplo n.º 1
0
        public int?Edit(UpdateProductGroupViewModel productGroup)
        {
            if (ModelState.IsValid)
            {
                var product = _repo.UpdateProductGroup(productGroup.ParentGroupId, productGroup.Id, productGroup.Title, productGroup.BrandIds, productGroup.ProductGroupFeatureIds);
                return(product.Id);
            }

            return(null);
        }
        public int?Edit(UpdateProductGroupViewModel newProductGroup)
        {
            if (ModelState.IsValid)
            {
                var productGroup = db.ProductGroups.Find(newProductGroup.Id);
                #region Adding Product Group
                productGroup.GroupName = newProductGroup.GroupName;
                if (newProductGroup.ParentGroupId != 0)
                {
                    productGroup.ParentId = newProductGroup.ParentGroupId;
                }
                else
                {
                    productGroup.ParentId = null;
                }

                db.Entry(productGroup).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                #region Product Group Brands

                // Removing Previous Group Brands
                var productGroupBrands = db.ProductGroupBrands
                                         .Where(b => b.ProductGroupId == productGroup.Id).ToList();
                foreach (var item in productGroupBrands)
                {
                    db.ProductGroupBrands.Remove(item);
                }

                db.SaveChanges();
                // Adding new Group Brands
                foreach (var brandId in newProductGroup.BrandIds)
                {
                    var productGroupBrand = new ProductGroupBrand();
                    productGroupBrand.ProductGroupId = productGroup.Id;
                    productGroupBrand.BrandId        = brandId;
                    db.ProductGroupBrands.Add(productGroupBrand);
                }
                db.SaveChanges();

                #endregion
                #region product Group Features
                var productGroupFeatures = db.ProductGroupFeatures
                                           .Where(b => b.ProductGroupId == productGroup.Id).ToList();

                // Removing Previous Group Features
                foreach (var item in productGroupFeatures)
                {
                    db.ProductGroupFeatures.Remove(item);
                }

                db.SaveChanges();

                // Adding New Group Features
                foreach (var featureId in newProductGroup.ProductGroupFeatureIds)
                {
                    var productGroupFeature = new ProductGroupFeature();
                    productGroupFeature.ProductGroupId = productGroup.Id;
                    productGroupFeature.FeatureId      = featureId;
                    db.ProductGroupFeatures.Add(productGroupFeature);
                }
                db.SaveChanges();
                #endregion
                return(productGroup.Id);
            }

            return(null);
        }