public int?Edit(NewProductViewModel product) { if (!ModelState.IsValid) { return(null); } var prod = _repo.Get(product.ProductId.Value); prod.Title = product.Title; prod.ShortDescription = product.ShortDescription; prod.Description = HttpUtility.UrlDecode(product.Description, System.Text.Encoding.Default); prod.BrandId = product.Brand; prod.ProductGroupId = product.ProductGroup; prod.Rate = product.Rate; var updateProduct = _repo.Update(prod); #region Removing Previous Product Features var productMainFeatures = _repo.GetProductMainFeatures(updateProduct.Id); foreach (var mainFeature in productMainFeatures) { _mainFeatureRepo.Delete(mainFeature.Id); } var productFeatures = _repo.GetProductFeatures(updateProduct.Id); foreach (var feature in productFeatures) { _featureRepo.Delete(feature.Id); } #endregion #region Adding Product Features foreach (var feature in product.ProductFeatures) { if (feature.IsMain) { var model = new ProductMainFeature(); model.ProductId = updateProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; model.Quantity = feature.Quantity ?? 0; model.Price = feature.Price ?? 0; _repo.AddProductMainFeature(model); } else { var model = new ProductFeatureValue(); model.ProductId = updateProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; _repo.AddProductFeature(model); } } #endregion return(updateProduct.Id); }
public ProductFeatureValue AddProductFeature(ProductFeatureValue feature) { var user = GetCurrentUser(); feature.InsertDate = DateTime.Now; feature.InsertUser = user.UserName; _context.ProductFeatureValues.Add(feature); _context.SaveChanges(); _logger.LogEvent(feature.GetType().Name, feature.Id, "Add"); return(feature); }
public int?Create(NewProductViewModel entity) { if (!ModelState.IsValid) { return(null); } var prod = new Product(); prod.ProductName = entity.ProductName; prod.ProductShortDescription = entity.ProductShortDescription; prod.ProductDescription = HttpUtility.UrlDecode(entity.ProductDescription, System.Text.Encoding.Default); prod.BrandId = entity.Brand; prod.ProductGroupId = entity.ProductGroup; prod.ProductPrice = entity.ProductPrice; prod.ProductDiscountPercent = entity.ProductDiscountPercent; prod.Point = entity.Point; var addProduct = db.Products.Add(prod); db.SaveChanges(); #region Adding Product Features foreach (var feature in entity.ProductFeatures) { if (feature.IsMain) { var model = new ProductMainFeature(); model.ProductId = addProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; model.Quantity = feature.Quantity ?? 0; model.Price = feature.Price ?? 0; db.ProductMainFeatures.Add(model); db.SaveChanges(); } else { var model = new ProductFeatureValue(); model.ProductId = addProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; db.ProductFeatureValues.Add(model); db.SaveChanges(); } } #endregion return(addProduct.Id); }
public IHttpActionResult PutProduct(Product new_product) { Product existingProduct = db.Products.Where(c => c.ProdID == new_product.ProdID).Include(cf => cf.ProductFeatureValues).SingleOrDefault(); if (existingProduct != null) { // Update Product db.Entry(existingProduct).CurrentValues.SetValues(new_product); // Delete ProductFeatureValues foreach (var existingPFV in existingProduct.ProductFeatureValues.ToList()) { if (!new_product.ProductFeatureValues.Any(cf => cf.ProdID == existingPFV.ProdID && cf.FeatureID == existingPFV.FeatureID && cf.Value == existingPFV.Value)) { db.ProductFeatureValues.Remove(existingPFV); } } // Update and Insert ProductFeatureValues foreach (var nPFV in new_product.ProductFeatureValues) { var existingProductFeatureValues = existingProduct.ProductFeatureValues.Where(cf => cf.ProdID == nPFV.ProdID && cf.FeatureID == nPFV.FeatureID && cf.Value == nPFV.Value).SingleOrDefault(); if (existingProductFeatureValues != null) { // Update ProductFeatureValues db.Entry(existingProductFeatureValues).CurrentValues.SetValues(nPFV); } else { // Insert ProductFeatureValues var newProductFeatureValue = new ProductFeatureValue { ProdID = nPFV.ProdID, FeatureID = nPFV.FeatureID, Value = nPFV.Value //... }; existingProduct.ProductFeatureValues.Add(nPFV); } } db.SaveChanges(); } return(StatusCode(HttpStatusCode.NoContent)); }
public int?Create(NewProductViewModel product) { if (!ModelState.IsValid) { return(null); } var prod = new Product(); prod.Title = product.Title; prod.ShortDescription = product.ShortDescription; prod.Description = HttpUtility.UrlDecode(product.Description, System.Text.Encoding.Default); prod.BrandId = product.Brand; prod.ProductGroupId = product.ProductGroup; prod.Rate = product.Rate; prod.ShortDescription = product.ShortDescription; var addProduct = _repo.Add(prod); #region Adding Product Features foreach (var feature in product.ProductFeatures) { if (feature.IsMain) { var model = new ProductMainFeature(); model.ProductId = addProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; model.Quantity = feature.Quantity ?? 0; model.Price = feature.Price ?? 0; _repo.AddProductMainFeature(model); } else { var model = new ProductFeatureValue(); model.ProductId = addProduct.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; _repo.AddProductFeature(model); } } #endregion return(addProduct.Id); }
public int?Edit(NewProductViewModel product) { if (!ModelState.IsValid) { return(null); } var prod = db.Products.Find(product.Id.Value); prod.ProductName = product.ProductName; prod.ProductShortDescription = product.ProductShortDescription; prod.ProductDescription = prod.ProductDescription; prod.BrandId = product.Brand; prod.ProductGroupId = product.ProductGroup; prod.ProductPrice = product.ProductPrice; prod.ProductDiscountPercent = product.ProductDiscountPercent; prod.Point = product.Point; db.Entry(prod).State = EntityState.Modified; db.SaveChanges(); #region Removing Previous Product Features var productMainFeatures = db.ProductMainFeatures.Where(f => f.ProductId == prod.Id).ToList(); foreach (var mainFeature in productMainFeatures) { db.ProductMainFeatures.Remove(mainFeature); } db.SaveChanges(); var productFeatures = db.ProductFeatureValues.Where(f => f.ProductId == prod.Id).ToList(); foreach (var feature in productFeatures) { db.ProductFeatureValues.Remove(feature); } db.SaveChanges(); #endregion #region Adding Product Features foreach (var feature in product.ProductFeatures) { if (feature.IsMain) { var model = new ProductMainFeature(); model.ProductId = prod.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; model.Quantity = feature.Quantity ?? 0; model.Price = feature.Price ?? 0; db.ProductMainFeatures.Add(model); db.SaveChanges(); } else { var model = new ProductFeatureValue(); model.ProductId = prod.Id; model.FeatureId = feature.FeatureId; model.SubFeatureId = feature.SubFeatureId; model.Value = feature.Value; db.ProductFeatureValues.Add(model); db.SaveChanges(); } } #endregion return(prod.Id); }