public bool UpdateProduct(
     ref ProductBDO productBDO,
     ref string message)
 {
     var productInDB =
         GetProduct(productBDO.ProductID);
     // invalid product to update
     if (productInDB == null)
     {
         message = "cannot get product for this ID";
         return false;
     }
     // a product cannot be discontinued
     // if there are non-fulfilled orders
     if (productBDO.Discontinued == true
         && productInDB.UnitsOnOrder > 0)
     {
         message = "cannot discontinue this product";
         return false;
     }
     else
     {
         return productDAO.UpdateProduct(ref productBDO,
             ref message);
     }
 }
 private void TranslateProductBDOToProductDTO(
     ProductBDO productBDO,
     Product product)
 {
     product.ProductID = productBDO.ProductID;
     product.ProductName = productBDO.ProductName;
     product.QuantityPerUnit = productBDO.QuantityPerUnit;
     product.UnitPrice = productBDO.UnitPrice;
     product.Discontinued = productBDO.Discontinued;
     product.RowVersion = productBDO.RowVersion;
 }
Beispiel #3
0
        public bool UpdateProduct(
            ref ProductBDO productBDO,
            ref string message)
        {
            message = "product updated successfully";
            bool ret = true;

            using (var NWEntities = new NorthwindEntities())
            {
                var productID = productBDO.ProductID;
                Product productInDB =
                      (from p
                       in NWEntities.Products
                       where p.ProductID == productID
                       select p).FirstOrDefault();

                // check product
                if (productInDB == null)
                {
                    throw new Exception("No product with ID " +
                                     productBDO.ProductID);
                }

                NWEntities.Products.Remove(productInDB);

                // update product
                productInDB.ProductName = productBDO.ProductName;
                productInDB.QuantityPerUnit = productBDO.QuantityPerUnit;
                productInDB.UnitPrice = productBDO.UnitPrice;
                productInDB.Discontinued = productBDO.Discontinued;
                productInDB.RowVersion = productBDO.RowVersion;

                NWEntities.Products.Attach(productInDB);
                NWEntities.Entry(productInDB).State =
                    System.Data.EntityState.Modified;
                int num = NWEntities.SaveChanges();

                productBDO.RowVersion = productInDB.RowVersion;

                if (num != 1)
                {
                    ret = false;
                    message = "no product is updated";
                }
            }
            return ret;
        }
        public bool UpdateProduct(ref Product product,
            ref string message)
        {
            bool result = true;

            // first check to see if it is a valid price
            if (product.UnitPrice <= 0)
            {
                message = "Price cannot be <= 0";
                result = false;
            }
            // ProductName can't be empty
            else if (string.IsNullOrEmpty(product.ProductName))
            {
                message = "Product name cannot be empty";
                result = false;
            }
            // QuantityPerUnit can't be empty
            else if (string.IsNullOrEmpty(product.QuantityPerUnit))
            {
                message = "Quantity cannot be empty";
                result = false;
            }
            else
            {
                try
                {
                    var productBDO = new ProductBDO();
                    TranslateProductDTOToProductBDO(product, productBDO);
                    result = productLogic.UpdateProduct(
                        ref productBDO, ref message);
                    product.RowVersion = productBDO.RowVersion;
                }
                catch (Exception e)
                {
                    string msg = e.Message;
                    throw new FaultException<ProductFault>
                        (new ProductFault(msg), msg);
                }
            }
            return result;
        }
Beispiel #5
0
 public ProductBDO GetProduct(int id)
 {
     ProductBDO productBDO = null;
     using (var NWEntities = new NorthwindEntities())
     {
         Product product = (from p in NWEntities.Products
                            where p.ProductID == id
                            select p).FirstOrDefault();
         if (product != null)
             productBDO = new ProductBDO()
             {
                 ProductID = product.ProductID,
                 ProductName = product.ProductName,
                 QuantityPerUnit = product.QuantityPerUnit,
                 UnitPrice = (decimal)product.UnitPrice,
                 UnitsInStock = (int)product.UnitsInStock,
                 ReorderLevel = (int)product.ReorderLevel,
                 UnitsOnOrder = (int)product.UnitsOnOrder,
                 Discontinued = product.Discontinued,
                 RowVersion = product.RowVersion
             };
     }
     return productBDO;
 }