示例#1
0
        public async Task <ActionResult> UpdateStock(InventoryTransferObject transferObject)
        {
            var item = await _inventoryRepository.Get(transferObject.Sku);

            var reservedTotal = item.ReservedStock + transferObject.TransactionCount;

            switch (transferObject.TransactionType)
            {
            case "RESERVE":
                if (reservedTotal <= item.TotalStock)
                {
                    item.ReservedStock = reservedTotal;
                    await _inventoryRepository.SaveChanges();

                    return(Ok(transferObject));
                }
                return(BadRequest());

            case "FREE":
                item.ReservedStock -= transferObject.TransactionCount;
                await _inventoryRepository.SaveChanges();

                return(Ok(transferObject));
            }

            return(BadRequest());
        }
 public async Task ReserveStock(InventoryTransferObject inventoryTransferObject)
 {
     await _httpService.Post <InventoryTransferObject>($"{baseUri}api/inventoryservice/v1/updatestock", inventoryTransferObject);
 }