Beispiel #1
0
        private void openCreditButton_Click(object sender, EventArgs e)
        {
            errorLabel.Text = String.Empty;

            if (_currentAccount == null)
            {
                errorLabel.Text = "Account not selected.";
                return;
            }

            CreditTypeEntity selectedCreditType;
            decimal          startSum;

            try {
                selectedCreditType = (CreditTypeEntity)creditTypeComboBox.SelectedItem;
                startSum           = Convert.ToDecimal(startSumTextBox.Text);
            } catch {
                errorLabel.Text = "Input correct data.";
                return;
            }

            decimal debtBalance;

            if (selectedCreditType.PercentType == PercentType.Simple)
            {
                debtBalance = startSum * (decimal)(1 + ((double)selectedCreditType.PayoutPeriod / Constants.K) * selectedCreditType.InterestRate);
            }
            else
            {
                debtBalance = startSum * (decimal)Math.Pow((1 + selectedCreditType.InterestRate), ((double)selectedCreditType.PayoutPeriod / Constants.K));
            }

            var userCreditEntity = new UserCreditEntity {
                BankAccountId = _currentAccount.Id,
                CreditTypeId  = selectedCreditType.Id,
                StartDate     = DateTimeOffset.Now,
                StartSum      = startSum,
                FinishDate    = DateTimeOffset.Now + TimeSpan.FromDays(selectedCreditType.PayoutPeriod),
                DebtBalance   = debtBalance
            };

            _currentAccount.MoneyCount += startSum;

            dbContext.BankAccounts.Update(_currentAccount);
            dbContext.UserCredits.Add(userCreditEntity);
            dbContext.SaveChanges();

            Close();
        }
        public TokenResult Generate()
        {
            var userCreditSequence      = Request.Headers["user_credit"].ToString();
            var userCreditSequenceArray = userCreditSequence.Split(new char[] { ',' }).Select(u => u.Trim()).ToList();

            var userCredit = new UserCreditEntity
            {
                ClientID = userCreditSequenceArray[0],
                UserNo   = userCreditSequenceArray[1],
                Password = userCreditSequenceArray[2]
            };

            if (!userCredit.ClientID.Equals(CustomSettings.AppSettings.ClientID))
            {
                return(new TokenResult
                {
                    IsSuccess = false,
                    ErrorMessage = "user credit is invalid."
                });
            }

            var userGetRequest = new UserGetRequest
            {
                UserNo   = userCredit.UserNo,
                Password = new Cryptor().Decrypt(userCredit.Password.ToArray())
            };

            var user = userService.GetUser(userGetRequest);

            if (user == null)
            {
                return(new TokenResult
                {
                    IsSuccess = false,
                    ErrorMessage = "user credit is incorrect."
                });
            }

            return(jwtTokenHelper.BuildAuthorizeToken(CustomSettings.AppSettings.ClientID, tokenOptions));
        }