Exemple #1
0
        private static async Task <(long bankAccountNo1, long bankAccountNo2)> CreateBankAccountsAsync(IScopedTransactionalDatabase transactionalStore)
        {
            _ba1AmountComparand = Rnd.Next();
            _ba2AmountComparand = Rnd.Next();

            var bankAccount1 = new BankAccount {
                Id = 1, Amount = _ba1AmountComparand
            };
            var bankAccount2 = new BankAccount {
                Id = 2, Amount = _ba2AmountComparand
            };

            try
            {
                await transactionalStore.StoreAsync(bankAccount1);

                await transactionalStore.StoreAsync(bankAccount2);

                await transactionalStore.TryCommitAsync();
            }
            catch
            {
                await transactionalStore.RollbackAsync();

                throw;
            }

            return(bankAccount1.Id, bankAccount2.Id);
        }
Exemple #2
0
        private static async Task OutputAsync(long bankAccountNo1, long bankAccountNo2, IScopedTransactionalDatabase transactionalStore)
        {
            BankAccount bankAccount1, bankAccount2;

            try
            {
                bankAccount1 = await transactionalStore.GetAsync <BankAccount>(p => p.Id == bankAccountNo1).FirstOrDefault();

                bankAccount2 = await transactionalStore.GetAsync <BankAccount>(p => p.Id == bankAccountNo2).FirstOrDefault();

                await transactionalStore.TryCommitAsync();
            }
            catch
            {
                await transactionalStore.RollbackAsync();

                throw;
            }

            await Console.Out.WriteLineAsync($"Account1 amount: {bankAccount1.Amount} should be {_ba1AmountComparand}");

            await Console.Out.WriteLineAsync($"Account2 amount: {bankAccount2.Amount} should be {_ba2AmountComparand}");

            await Console.Out.WriteLineAsync();

            await Console.Out.WriteLineAsync(bankAccount1.Amount == _ba1AmountComparand && bankAccount2.Amount == _ba2AmountComparand? "OK" : "NOT OK");
        }