public async Task <IActionResult> PridruziSeIgri(Boja boja, string accessCode) { string email = User.FindFirstValue("email"); Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, email); if (korisnik == null) { return(BadRequest()); } Igra joinGame = await GameProvider.NadjiIgru(db, accessCode); if (joinGame == null) { return(NotFound()); } if (joinGame.status != statusIgre.cekanjeIgraca) { return(BadRequest()); } if (joinGame.slobodnaBoja(boja)) { joinGame.dodajIgraca(boja, korisnik); if (joinGame.sviPrisutni()) { joinGame.status = statusIgre.uToku; } await GameProvider.AzurirajIgru(db, joinGame); return(Ok(new { token = JWTGenerator.GenerateGameToken(korisnik, joinGame, boja), username = korisnik.username, slika = korisnik.slika, igraciImena = joinGame.vratiIgrace(), igraciSlike = await GameProvider.slikeIgraca(db, joinGame) })); } else { return new ObjectResult(joinGame.zauzeteBoje()) { StatusCode = 403 } }; }
public async Task <IActionResult> RejoinGame(string id) { string email = User.FindFirstValue("email"); Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, email); Igra game = await GameProvider.NadjiIgru(db, id); if (game.status != statusIgre.cekanjeIgracaPause && (game.crveniIgracId != korisnik.ID && game.zeleniIgracId != korisnik.ID && game.zutiIgracId != korisnik.ID && game.plaviIgracId != korisnik.ID)) { return(Forbid()); } Boja bojaKorisnika = Boja.crveni; foreach (Boja b in Enum.GetValues(typeof(Boja))) { if ((int)game.GetType().GetProperty(b.ToString() + "IgracId").GetValue(game) == korisnik.ID) { bojaKorisnika = b; } } if (korisnik.ID == game.kreatorIgre.ID) { return(Ok(new { naPotezu = game.naPotezu.ToString(), boja = bojaKorisnika.ToString(), accessCode = game.accessCode, figure = game.figure, token = JWTGenerator.GenerateGameToken(korisnik, game, bojaKorisnika), username = korisnik.username, slika = korisnik.slika, igraciImena = game.vratiIgrace(), igraciSlike = await GameProvider.slikeIgraca(db, game) })); } else { return(Ok(new { naPotezu = game.naPotezu.ToString(), boja = bojaKorisnika.ToString(), figure = game.figure, token = JWTGenerator.GenerateGameToken(korisnik, game, bojaKorisnika), username = korisnik.username, slika = korisnik.slika, igraciImena = game.vratiIgrace(), igraciSlike = await GameProvider.slikeIgraca(db, game) })); } }