Пример #1
0
        private void CastVote(Player p, Bill b, char vote)
        {
            Bill_Vote bv = _context.Bill_Vote.FirstOrDefault(item => item.BillID == b.BillID && item.PlayerID == p.PlayerID);

            if (bv == null)
            {
                bv = new Bill_Vote {
                    BillID   = b.BillID,
                    PlayerID = p.PlayerID,
                    vote     = vote
                };
                _context.Bill_Vote.Add(bv);
            }
            else
            {
                bv.vote = vote;
            }
            _context.SaveChanges();
        }
        private void castVote(string username, int bill_id, char vote)
        {
            Player p = _context.Player.FirstOrDefault(item => item.username == username);

            Bill_Vote bv = _context.Bill_Vote.FirstOrDefault(item => item.BillID == bill_id && item.PlayerID == p.PlayerID);

            if (bv == null)
            {
                bv          = new Bill_Vote();
                bv.BillID   = bill_id;
                bv.PlayerID = p.PlayerID;
                bv.vote     = vote;
                _context.Bill_Vote.Add(bv);
            }
            else
            {
                bv.vote = vote;
            }
            _context.SaveChanges();
        }
Пример #3
0
        public void Post(Bill_Vote vote)
        {
            //Game g = _context.Game.FirstOrDefault(item => item.name == game_name);
            Player p = _context.Player.FirstOrDefault(item => item.PlayerID == vote.PlayerID);
            Bill   b = _context.Bill.FirstOrDefault(item => item.BillID == vote.BillID);

            //Bill_Vote bv = _context.Bill_Vote.FirstOrDefault(item => item.BillID == b.BillID && item.PlayerID == p.PlayerID);
            //TODO: Verify that player is part of game and owner of bill
            switch (vote.vote)
            {
            case 'Y':       //Aye
            case 'N':       //Nay
            case 'P':       //Present
                CastVote(p, b, vote.vote);
                break;

            case 'A':       //Amend -- must be owner
                //Bill b = _context.Bill.First(item => item.BillID == bill_id);
                b.proposed = false;
                _context.SaveChanges();
                break;

            case 'C':       //Close -- must be owner

                IQueryable <Game_Law>  _Law  = _context.Game_Law.Where(item => item.GameID == b.GameID).OrderBy(item => item.IssueID);
                IQueryable <Bill_Hand> _Hand = _context.Bill_Hand.Where(item => item.BillID == b.BillID).OrderBy(item => item.IssueID);
                foreach (Bill_Hand B in _Hand)
                {
                    int      issue_id = B.IssueID;
                    Game_Law l        = _Law.Single(item => item.IssueID == issue_id);
                    l.score += B.score;
                }
                _context.SaveChanges();
                break;

            default:
                Response.StatusCode = 400;
                break;
            }
        }