public async Task <GameManagerResponse> ResultAsync(ResultForDto model, string userId) { await using (_context) { var game = _context.Games.Find(model.GameId); if (_context.GroupMembers.FirstOrDefault(u => u.GroupId == game.GroupId && u.UserId == userId && u.Role == "Admin") == null) { return(new GameManagerResponse { Message = "Bu işlem için yetkiniz yok.", IsSuccess = false }); } if (game.GameDate.Value > DateTime.Now) { return(new GameManagerResponse { Message = "Oyun henüz oynanmadı.", IsSuccess = false }); } game.WinnerTeam = model.WinnerTeam; if (model.Attendees != null && model.Players != null) { var gamePlayers = _context.GamePlayers.Where(p => p.GameId == model.GameId && p.InviteResponse == true).ToList(); var index = 0; foreach (var player in model.Players) { var temp = gamePlayers.FirstOrDefault(u => u.GameId == model.GameId && u.UserId == player); temp.Attended = model.Attendees[index]; if (model.Attendees[index]) { var user = await _userManager.FindByIdAsync(temp.UserId); user.Remainder -= game.Price.Value; } _context.Update(temp); index++; } } await _context.SaveChangesAsync(); return(new GameManagerResponse { Message = "Oyun düzenleme başarılı.", IsSuccess = true }); } }
public IActionResult Result([FromBody] ResultForDto model) { if (ModelState.IsValid) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (userId != null) { return(Ok(_gameService.ResultAsync(model, userId).Result)); } return(BadRequest()); } return(BadRequest("Some properties are not valid.")); }