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); } }