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); }