Example #1
0
        public void PayPendingModel(BillModel billModel)
        {
            var p = new PayModel();

            p.PhoneNumber = billModel.PhoneNumber;
            p.Amount      = billModel.Amount;
            //Pay(p);

            var user = _userRepository.GetUserByPhoneNumber(p.PhoneNumber);

            if (user.Amount < p.Amount)
            {
                throw new Exception("Not enough money! Top up first.");
            }
            else

            {
                if (p.Amount - (int)p.Amount != 0)
                {
                    double x      = Math.Ceiling(p.Amount);
                    double change = x - p.Amount;
                    _userRepository.AddToUserPocket(p.PhoneNumber, change);
                }
                user.Amount = user.Amount - (int)Math.Ceiling(p.Amount);
                _userRepository.UpdateUser(user);
                _billsRepository.UpdateBill(billModel);
            }
        }