示例#1
0
 public ActionResult ATMDepositMoney(ATMCardModel atmcard)
 {
     atmcard.ErrorDetails = "";
     if (atmcard.CashAmount <= 0)
     {
         atmcard.ErrorDetails = "Podana kwota musi być większa od zera";
     }
     else
     {
         cardsFcd.ATMDepositMoney(atmcard);
     }
     return(RedirectToAction("ATMCardSim", new { id = atmcard.Id, errorDetails = atmcard.ErrorDetails }));
 }
示例#2
0
 public void ATMDepositMoney(ATMCardModel atmcard)
 {
     using (var ts = new TransactionScope())
     {
         cardsDAO.DepositMoneyToAccount(atmcard.AccountId, atmcard.CashAmount);
         cardsDAO.WithdrawMoneyFromAccount((int)Consts.Consts.AccountNumbers.SystemAccountId, atmcard.CashAmount);
         cardsDAO.CreateOperationHistory(new DAL.PaymentCardsOperationHistory()
         {
             BalanceChange    = atmcard.CashAmount,
             CreditCardId     = atmcard.Id,
             CreditCardTypeId = 1003,
             DateIssued       = DateTime.Now,
             OperationTypeId  = 3001,
             UserId           = atmcard.UserId
         });
         ts.Complete();
     }
 }
示例#3
0
        public ATMCardModel GetATMCardById(int id)
        {
            var atmCard  = cardsDAO.GetATMCardById(id);
            var baseCard = GetPaymentCardById(id);
            var account  = usersFcd.GetUserAccountById(atmCard.AccountId);

            ATMCardModel atmCardModel = new ATMCardModel()
            {
                AccountId           = atmCard.AccountId,
                BaseCardId          = atmCard.BaseCardId,
                DailyLimit          = atmCard.DailyLimit,
                Id                  = atmCard.Id,
                BaseCard            = baseCard,
                UsedLimit           = CalculateDailyUsedLimit(id),
                AvailableBalance    = account.AvailableBalance,
                UserId              = baseCard.UserId,
                BoundAccountNumber  = account.AccountNumber,
                OperationsCount     = 5,
                UsedOperationsCount = GetOperationsCount(id)
            };

            return(atmCardModel);
        }
示例#4
0
        public ActionResult ATMWithdrawMoney(ATMCardModel atmcard)
        {
            atmcard.ErrorDetails = "";
            var account = usersFcd.GetUserAccountById(atmcard.AccountId);

            if (atmcard.CashAmount <= 0)
            {
                atmcard.ErrorDetails = "Podana kwota musi być większa od zera";
            }
            else
            {
                if (atmcard.CashAmount > atmcard.AvailableBalance - account.BlockedBalance)
                {
                    atmcard.ErrorDetails += "Brak wystarczających środków na koncie. ";
                }
                else
                {
                    if (atmcard.CashAmount > atmcard.DailyLimit - atmcard.UsedLimit)
                    {
                        atmcard.ErrorDetails += "Przekroczono dzienny limit pieniężny.";
                    }
                    else
                    {
                        if (atmcard.UsedOperationsCount >= atmcard.OperationsCount)
                        {
                            atmcard.ErrorDetails += "Przekroczono dzienny limit ilości operacji";
                        }
                        else
                        {
                            cardsFcd.ATMWithdrawMoney(atmcard);
                        }
                    }
                }
            }
            return(RedirectToAction("ATMCardSim", new { id = atmcard.Id, errorDetails = atmcard.ErrorDetails }));
        }