示例#1
0
文件: Warehouse.cs 项目: fswong/WDT1
        /// <summary>
        /// updates the stock of a product to 20 if the stock is less than 20
        /// </summary>
        /// <param name="productID"></param>
        public void ProcessOwnerInventory(int productID)
        {
            //get the product
            var product = _ownerInventory.Find(item => item.ProductID == productID);

            //validate that the product is valid
            if (product != null)
            {
                //check that the stock level is below max
                if (product.StockLevel < Constants.OWNERMAXSTOCK)
                {
                    var oiRepo = new OwnerInventoryRepository();
                    try
                    {
                        //update the product
                        product = oiRepo.UpdateOwnerInventory(product.ProductID, Constants.OWNERMAXSTOCK);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                    Console.WriteLine(product.ProductID + " stocklevel has been reset to " + product.StockLevel);
                }
                else
                {
                    WidgetError.DisplayError(product.Name + " already has enough stock");
                }
            }
            else
            {
                WidgetError.DisplayError("No such product found");
            }
        }
示例#2
0
文件: Warehouse.cs 项目: fswong/WDT1
        /// <summary>
        /// if valid, transfers from the owners stock to the relavant store
        /// </summary>
        /// <param name="stockRequestID"></param>
        public void ProcessStockRequest(int stockRequestID)
        {
            try
            {
                var StockRequest = new StockRequestRepository().GetStockRequestById(stockRequestID);
                var product      = _ownerInventory.Find(item => item.ProductID == StockRequest.ProductID);

                if (product != null)
                {
                    // validate
                    if (product.StockLevel > StockRequest.Quantity && StockRequest.StockAvailability)
                    {
                        product.StockLevel = product.StockLevel - StockRequest.Quantity;
                        product            = new OwnerInventoryRepository().UpdateOwnerInventory(product.ProductID, product.StockLevel);

                        //add store stock
                        var siRepo         = new StoreInventoryRepository();
                        var storeInventory = siRepo.GetStoreInventoryByStoreIdAndProductId(StockRequest.StoreID, product.ProductID);
                        storeInventory.StockLevel = storeInventory.StockLevel + StockRequest.Quantity;
                        siRepo.UpdateStoreInventory(product.ProductID, StockRequest.StoreID, storeInventory.StockLevel);

                        //delete stock request
                        new StockRequestRepository().DeleteStockRequest(StockRequest.StockRequestID);
                    }
                    else
                    {
                        WidgetError.DisplayError("Insufficient stock to process this request");
                    }
                }
                else
                {
                    WidgetError.DisplayError("Invalid product chosen");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }