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);
        }
Esempio n. 2
0
        public ProductMainFeature AddProductMainFeature(ProductMainFeature mainFeature)
        {
            var user = GetCurrentUser();

            mainFeature.InsertDate = DateTime.Now;
            mainFeature.InsertUser = user.UserName;
            _context.ProductMainFeatures.Add(mainFeature);
            _context.SaveChanges();

            _logger.LogEvent(mainFeature.GetType().Name, mainFeature.Id, "Add");
            return(mainFeature);
        }
Esempio n. 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);
        }
        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);
        }
Esempio n. 5
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);
        }