Example #1
0
        public void Pay(PayModel payModel)
        {
            var user = _userRepository.GetUserByPhoneNumber(payModel.PhoneNumber);

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

            {
                if (payModel.Amount - (int)payModel.Amount != 0)
                {
                    double x      = Math.Ceiling(payModel.Amount);
                    double change = x - payModel.Amount;
                    _userRepository.AddToUserPocket(payModel.PhoneNumber, change);
                }

                //user.Amount = user.Amount - (int)Math.Ceiling(payModel.Amount);
                //_userRepository.UpdateUser(user);
                var l = new List <string>();
                l.Add(user.PhoneNumber);
                var b = new Bill(new GroupKey("11", "213"), payModel.Amount);
                _billsRepository.AddBill(b);

                _billsRepository.AddBillMemberAmount(l, b, payModel.Amount);
            }
        }
Example #2
0
        public string SplitBill(GroupKey g, double amount)

        {
            var group   = _groupsRepository.GetGroup(g);
            var members = group.Users;

            var b = new Bill(g, amount);

            _billsRepository.AddBill(b);

            var no_members = group.Users.Count + 1;

            double to_pay = amount / no_members;

            //members.Add(g.PhoneNumber);
            _billsRepository.AddBillMemberAmount(members, b, to_pay);

            string pay   = null;
            string names = null;

            foreach (string user_no in members)
            {
                var us = _userRepository.GetUserByPhoneNumber(user_no);
                var u  = new UserLeftAmount();
                u.User = us;
                if (us.Amount < to_pay)
                {
                    names += us.FirstName + " " + us.LastName + ", ";
                }
                else
                {
                    u.Amount = to_pay;
                }
                pay = pay + u.User.FirstName + " " + u.User.LastName + ": " + to_pay.ToString() + '\n';
            }

            return(pay);
        }