public async Task <IActionResult> ResumeRequest(string id) { string email = User.FindFirstValue("email"); Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, email); Igra game = await GameProvider.NadjiIgru(db, id); if (game.kreatorIgre.ID != korisnik.ID) { return(BadRequest()); } if (game.status != statusIgre.pauzirana) { return(Forbid()); } game.status = statusIgre.cekanjeIgracaPause; await GameProvider.AzurirajIgru(db, game); return(await this.RejoinGame(id)); }
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> NovaIgra(Boja boja, bool privateGame) { string email = User.FindFirstValue("email"); Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, email); if (korisnik == null) { return(BadRequest()); } Igra novaIgra = new Igra(korisnik); novaIgra.privateGame = privateGame; await GameProvider.dodajIgru(db, novaIgra); IActionResult res = (await this.PridruziSeIgri(boja, novaIgra.accessCode)); if (res is OkObjectResult) { OkObjectResult result = (OkObjectResult)res; dynamic val = result.Value; return(Ok(new { token = val.token, accessCode = novaIgra.accessCode, username = korisnik.username, slika = korisnik.slika })); } return(BadRequest()); }
public async Task SendMessage(string message) { Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, Context.User.FindFirstValue("email")); await Clients.GroupExcept(Context.User.FindFirstValue("sub"), Context.ConnectionId).SendAsync("userSentMessage", message, korisnik.username); }