示例#1
0
        public void Replenish_Test([Values(5000, 1000, -200, -5000)] double input)
        {
            var currencyAccount = new CurrencyAccount("RUB", 10000);
            var expectedResult  = currencyAccount.Value + input;

            purserManager.ReplanishCurrencyAccount(currencyAccount, input);
            Assert.AreEqual(expectedResult, currencyAccount.Value);
        }
示例#2
0
        public async Task <CurrencyAccount> AddAccountCurrencyForUser(User user, CurrencyAccount currencyAccount)
        {
            await InitCurrencies();

            var checkCorrectCurrency = currencies.FirstOrDefault(x => x.CurrencyName.Equals(currencyAccount.CurrencyName));

            if (checkCorrectCurrency == null)
            {
                throw new Exception("Неизвестный тип валюты!");
            }

            user.Purse.CurrencyAccounts.Add(currencyAccount);
            return(currencyAccount);
        }
示例#3
0
        public async Task ConvertCurrencies_Test([Values(1.5)] double rateForUSD,
                                                 [Values(20)] double rateForRUB)
        {
            var user = new User("Test");

            currencyService.AddCurrencyToList(new Currency("EUR", 1));
            currencyService.AddCurrencyToList(new Currency("USD", rateForUSD));
            currencyService.AddCurrencyToList(new Currency("RUB", rateForRUB));

            var currencyAccountRUB = new CurrencyAccount("RUB", 10000);

            await purserManager.AddAccountCurrencyForUser(user, currencyAccountRUB);

            await purserManager.ConvertCurrencies(user, "RUB", "USD", 2000);

            var expectedResult = (2000 / rateForRUB) * rateForUSD;
            var realResult     = user.Purse.CurrencyAccounts.FirstOrDefault(x => x.CurrencyName.Equals("USD"));

            Assert.AreEqual(expectedResult, realResult.Value);
        }
示例#4
0
        private void ChangeWalletBalance(Currency currencyType, decimal value)
        {
            var currencyAccount = _wallet.CurrencyAccounts.FirstOrDefault(c => c.CurrencyType == currencyType);

            if (currencyAccount == null)
            {
                var newCurrency = new CurrencyAccount()
                {
                    CurrencyAccountId = Guid.NewGuid(),
                    CurrencyType      = currencyType,
                    Value             = value,
                    WalletId          = _wallet.ClientId
                };

                _wallet.CurrencyAccounts.Add(newCurrency);
            }
            else
            {
                currencyAccount.Value += value;
            }
        }
示例#5
0
        public async Task <IActionResult> CreateCurrencyAccount(CurrencyAccount currencyAccount, string userName)
        {
            if (ModelState.IsValid)
            {
                var user = _userManager.GetUser(userName);
                if (user == null)
                {
                    return(BadRequest("Указанного пользователя не существует"));
                }

                try
                {
                    await _purseManager.AddAccountCurrencyForUser(user, currencyAccount);
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }

                return(Ok(user.Purse));
            }
            return(BadRequest());
        }
示例#6
0
 public void ReplanishCurrencyAccount(CurrencyAccount currencyAccount, double value)
 {
     currencyAccount.Value += value;
 }
示例#7
0
 public void Setup()
 {
     currencyAccount = new CurrencyAccount();
     currencyAccount.AccountConfig(-100, 100);
     currencyDataService = new CurrencyDataService();
 }