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); }