コード例 #1
0
        async Task MoveItem(IConn conn, MoveItemRequest moveItemRequest)
        {
            var wasFrom = _store.GetItemQuantity(moveItemRequest.FromItemID);
            var wasTo   = _store.GetItemQuantity(moveItemRequest.ToItemID);

            if (wasFrom < moveItemRequest.Amount)
            {
                await conn.Write(new ArgumentException("Insufficient amount"));

                return;
            }

            await Commit(
                new ItemAdded(moveItemRequest.ToItemID, moveItemRequest.Amount, wasTo + moveItemRequest.Amount),
                new ItemRemoved(moveItemRequest.FromItemID, moveItemRequest.Amount, wasFrom - moveItemRequest.Amount));

            await conn.Write(new MoveItemResponse());
        }
コード例 #2
0
        public async Task MoveItem(long from, long to, decimal amount)
        {
            var req = new MoveItemRequest(from, to, amount);

            await Unary <MoveItemRequest, MoveItemResponse>(req);
        }