예제 #1
0
        public int SaveProduct(HsrOrderApp.BL.DomainModel.Product product)
        {
            try
            {
                string  setname = "ProductSet";
                Product dbProduct;

                bool isNew = false;
                if (product.ProductId == default(int) || product.ProductId <= 0)
                {
                    isNew     = true;
                    dbProduct = new Product();
                }
                else
                {
                    dbProduct = new Product()
                    {
                        ProductId = product.ProductId, Version = product.Version.ToTimestamp()
                    };
                    dbProduct.EntityKey = db.CreateEntityKey(setname, dbProduct);
                    db.AttachTo(setname, dbProduct);
                }
                dbProduct.Name            = product.Name;
                dbProduct.Category        = product.Category;
                dbProduct.QuantityPerUnit = product.QuantityPerUnit;
                dbProduct.ListUnitPrice   = product.ListUnitPrice;
                dbProduct.UnitsOnStock    = product.UnitsOnStock;
                dbProduct.ProductNumber   = product.ProductNumber;

                if (isNew)
                {
                    db.AddToProductSet(dbProduct);
                }
                db.SaveChanges();
                product.ProductId = dbProduct.ProductId;
                return(dbProduct.ProductId);
            }
            catch (OptimisticConcurrencyException ex)
            {
                if (ExceptionPolicy.HandleException(ex, "DA Policy"))
                {
                    throw;
                }
                return(default(int));
            }
        }
예제 #2
0
        public int SaveProduct(HsrOrderApp.BL.DomainModel.Product product)
        {
            try
            {
                Product dbProduct = new Product();
                bool    isNew     = false;
                if (product.ProductId == default(int) || product.ProductId <= 0)
                {
                    isNew = true;
                }

                dbProduct.ProductId       = product.ProductId;
                dbProduct.Version         = product.Version.ToTimestamp();
                dbProduct.Name            = product.Name;
                dbProduct.Category        = product.Category;
                dbProduct.QuantityPerUnit = product.QuantityPerUnit;
                dbProduct.ListUnitPrice   = product.ListUnitPrice;
                dbProduct.UnitsOnStock    = product.UnitsOnStock;
                dbProduct.ProductNumber   = product.ProductNumber;

                if (isNew)
                {
                    db.Products.InsertOnSubmit(dbProduct);
                }
                else
                {
                    db.Products.Attach(dbProduct, true);
                }
                db.SubmitChanges();
                product.ProductId = dbProduct.ProductId;
                return(dbProduct.ProductId);
            }
            catch (ChangeConflictException ex)
            {
                if (ExceptionPolicy.HandleException(ex, "DA Policy"))
                {
                    throw;
                }
                return(default(int));
            }
        }