Exemplo n.º 1
0
        public override async Task <InvokeResponse> OnInvoke(InvokeRequest request, ServerCallContext context)
        {
            _logger.LogDebug("OnInvoke");
            var response = new InvokeResponse();

            switch (request.Method)
            {
            case "increment":
                var incrementRequest = JsonSerializer.Deserialize <IncrementRequest>(request.Data.Value.ToByteArray(), this.jsonOptions);
                var account          = new LoyaltyAccount()
                {
                    Id          = incrementRequest.Id,
                    TotalPoints = incrementRequest.Points * 2
                };

                response.Data = new Any
                {
                    Value = ByteString.CopyFrom(JsonSerializer.SerializeToUtf8Bytes <LoyaltyAccount>(account, this.jsonOptions))
                };
                break;

            default:
                break;
            }

            return(response);
        }
Exemplo n.º 2
0
        public void DebitingAccountShouldDeductAmountFromBalanceRecordTransactionAndUpdateLastdebitDate()
        {
            var account = new LoyaltyAccount();

            account.Credit(100);
            account.Debit(50);
            Assert.AreEqual(50, account.Balance);
            var lastTransaction = account.LastTransaction;

            Assert.AreEqual(-50, lastTransaction.Amount);

            var now = DateTime.Now;

            Assert.AreEqual(now.Date + "/" + now.Month + "/" + now.Year, account.LastTransactionDate);
        }