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