public async Task <ActionResult <Game> > PostGame(Game game) { game.start_time = DateTime.UtcNow; _context.Game.Add(game); //TODO: Generate random laws for (int x = 1; x <= game.deck_size; x++) { Game_Law l = new Game_Law(); l.GameID = game.GameID; l.IssueID = x; l.score = 0; _context.Game_Law.Add(l); } await _context.SaveChangesAsync(); return(CreatedAtAction("GetGame", new { id = game.GameID }, game)); }
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; } }
public void Post([FromBody] string value) { dynamic bv = JsonSerializer.Deserialize <object>(value); int bill_id = bv.bill_id; string player_name = bv.username; //TODO: Verify that player is part of game and owner of bill switch (bv.vote[0]) { case 'Y': //Aye case 'N': //Nay case 'P': //Present castVote(player_name, bill_id, bv.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 int game_id = bv.game_id; IQueryable <Game_Law> _Law = _context.Game_Law.Where(item => item.GameID == game_id).OrderBy(item => item.IssueID); IQueryable <Bill_Hand> _Hand = _context.Bill_Hand.Where(item => item.BillID == bill_id).OrderBy(item => item.IssueID); foreach (dynamic B in bv.Bill) { int issue_id = B.issue_id; Game_Law l = _Law.Single(item => item.IssueID == issue_id); l.score += B.score; } _context.SaveChanges(); break; default: Response.StatusCode = 400; break; } }
public async Task <ActionResult <Game> > PostGame(Game game) { if (_context.Game.Any(item => item.name == game.name)) { return(BadRequest()); } game.start_time = DateTime.UtcNow; _context.Game.Add(game); Bill b = new Bill { GameID = game.GameID, active = true, proposed = false }; _context.Bill.Add(b); game.last_bill = b.BillID; //TODO: Generate random laws for (int x = 1; x <= game.deck_size; x++) { Game_Law l = new Game_Law { GameID = game.GameID, IssueID = x, score = 0 }; _context.Game_Law.Add(l); Bill_Hand bh = new Bill_Hand { BillID = b.BillID, IssueID = x, score = 0 }; _context.Bill_Hand.Add(bh); } await _context.SaveChangesAsync(); return(CreatedAtAction("GetGame", new { id = game.GameID }, game)); }