示例#1
0
        public void Add(VM.Product product)
        {
            var prod = new DM.Product()
            {
                CategoryID         = product.CategoryID,
                SubCategoryID      = product.SubcategoryID,
                ProductDescription = product.ProductDescription,
                Color              = product.Color,
                UnitPrice          = product.UnitPrice,
                ProductName        = product.ProductName,
                DiscountPercentage = product.DiscountPercentage
            };
            var insertedProduct = dbContext.Products.Add(prod);

            foreach (var s in product.Stocks)
            {
                var stock = new DM.Stock()
                {
                    SizeID    = s.SizeID,
                    ProductID = insertedProduct.ProductID,
                    Quantity  = s.Quantity
                };
                dbContext.Stocks.Add(stock);
                //dbContext.SaveChanges();
            }
            foreach (var img in product.Images)
            {
                var productImage = new DM.ProductImage()
                {
                    ProductID = insertedProduct.ProductID,
                    Image     = img
                };
                dbContext.ProductImages.Add(productImage);
                //dbContext.SaveChanges();
            }
            dbContext.SaveChanges();
        }
示例#2
0
        public bool UpdateStock(VM.Product product)
        {
            int row      = 0;
            var dbStocks = dbContext.Stocks.Where(x => x.ProductID == product.ProductID).ToList();
            var sizeIDs  = dbStocks.Select(x => x.SizeID).ToArray();
            var stockIDs = dbStocks.Select(x => x.StockID).ToArray();
            var stkIDs   = product.Stocks.Select(x => x.StockID).ToArray();


            foreach (var s in product.Stocks)
            {
                if (s.StockID > 0)
                {
                    var stk = dbContext.Stocks.Find(s.StockID);
                    stk.Quantity = s.Quantity;
                    stk.SizeID   = s.SizeID;
                    if (dbContext.SaveChanges() > 0)
                    {
                        row++;
                    }
                }
                else if (s.StockID == 0 && !sizeIDs.Contains(s.SizeID))
                {
                    var stock = new DM.Stock()
                    {
                        SizeID    = s.SizeID,
                        ProductID = product.ProductID,
                        Quantity  = s.Quantity
                    };
                    dbContext.Stocks.Add(stock);
                    if (dbContext.SaveChanges() > 0)
                    {
                        row++;
                    }
                }
                else if (s.StockID == 0 && sizeIDs.Contains(s.SizeID))
                {
                    var stk = dbContext.Stocks.Where(x => x.ProductID == product.ProductID && x.SizeID == s.SizeID).FirstOrDefault();
                    stk.Quantity = s.Quantity;
                    if (dbContext.SaveChanges() > 0)
                    {
                        row++;
                    }
                }
            }
            foreach (var st in stockIDs)
            {
                if (!stkIDs.Contains(st))
                {
                    var d = dbContext.Stocks.Find(st);
                    dbContext.Stocks.Remove(d);
                    //dbContext.Entry(d).State = EntityState.Deleted;
                    if (dbContext.SaveChanges() > 0)
                    {
                        row++;
                    }
                }
            }
            if (row > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }