public async Task <IActionResult> EditUserGame(UserGameListingModel model) { // Added model validation if (!ModelState.IsValid) { return(RedirectToAction("EditUserGame", "UserGame")); } var newUserGameContent = new NewUserGameModel { GamePlayedName = model.GameName, //Players detail User_01_Id = model.User_01_Id, User_01_Team = model.User_01_Team, User_02_Id = model.User_02_Id, User_02_Team = model.User_02_Team, //Score GameScoreUser01 = model.GameScoreUser01, GameScoreUser02 = model.GameScoreUser02, }; var userGame = BuildUserGame(newUserGameContent); userGame.Id = model.Id; await _userGameService.EditUserGame(userGame); // SignalR send message to All that DB was updated await _hubContext.Clients.All.SendAsync("Notify", $"Created new UserGame at : {DateTime.Now}"); return(RedirectToAction("Index", "Home")); }
/** * Creates new Post in a Forum determined by forumId * It prepopulates the form with user and Forum data */ public IActionResult CreateNewUserGame() { var games = _gameService.GetAll(); var users = _userService.GetAllActive().OrderBy(user => user.UserName); var model = new NewUserGameModel { GamesList = games, UsersList = users }; return(View(model)); }
// ===================== private UserGame BuildUserGame(NewUserGameModel model) { var user1 = _userService.GetById(model.User_01_Id); var user2 = _userService.GetById(model.User_02_Id); var gamePlayed = _gameService.GetByName(model.GamePlayedName); // Check the winner var winner = "DRAW"; var scores = model.GameScore.Split(":"); var player1Score = 0; var player2Score = 0; if (scores.Length != 0) { player1Score = Convert.ToInt32(scores.GetValue(0)); player2Score = Convert.ToInt32(scores.GetValue(1)); } if (player1Score > player2Score) { winner = user1.Id; } if (player1Score < player2Score) { winner = user2.Id; } return(new UserGame { User_01_Id = model.User_01_Id, User_01_Team = model.User_01_Team, User_02_Id = model.User_02_Id, User_02_Team = model.User_02_Team, //Score GameScore = model.GameScore, //Winner, “USER_01_Id”, “USER_02_Id”, “DRAW” Winner = winner, //Referee details. Only keep their User.Id RefereeUserId = model.RefereeUserId, // Name of the game GamePlayed = gamePlayed }); }
public async Task <IActionResult> AddUserGame(NewUserGameModel model) { var userId = _userManager.GetUserId(User); //_userManager is a built in service. From // Microsoft.AspNetCore.Identity; - Provides API to interact with Users in // Data store. //User is a built in Object that contains Current User info. // We may Use current user later as a refery var user = await _userManager.FindByIdAsync(userId); var userGame = BuildUserGame(model); //TODO: User management rating. await _userGameService.AddUserGameAsync(userGame); return(RedirectToAction("Index", "UserGame", new { userGameId = userGame.Id })); }
public async Task <IActionResult> AddUserGame(NewUserGameModel model) { if (!ModelState.IsValid) { return(RedirectToAction("CreateNewUserGame", "UserGame")); } var userId = _userManager.GetUserId(User); // Record user who submitted the form as a refery. Just for the record model.RefereeUserId = userId; var userGame = BuildUserGame(model); await _userGameService.AddUserGameAsync(userGame); //await _monthlyWinnersService.AddNewWinnerAsync(null); // SignalR send message to All that DB was updated await _hubContext.Clients.All.SendAsync("Notify", $"Created new UserGame at : {DateTime.Now}"); return(RedirectToAction("Index", "Home")); }
private UserGame BuildUserGame(NewUserGameModel model) { var user1 = _userService.GetById(model.User_01_Id); var user2 = _userService.GetById(model.User_02_Id); var gamePlayed = _gameService.GetByName(model.GamePlayedName); // Check the winner var winner = "DRAW"; var winnerId = "DRAW"; //var scores = model.GameScore.Split(":"); var player1Score = Convert.ToInt32(model.GameScoreUser01); var player2Score = Convert.ToInt32(model.GameScoreUser02); if (player1Score > player2Score) {// user1 won winnerId = user1.Id; winner = "user1"; } if (player1Score < player2Score) {// user2 won winnerId = user2.Id; winner = "user2"; } // CalculatePoints method passes 5 parameters // 1. User Ones Points before calculation // 2. User Twos Points before calculation // 3. The winner in form "user1" or "user2" // 4. The Id of the game played // 5. The number of games user 1 has played // 6. The number of games user 2 has played // ----------------------------------------- // The method returns an integer array with the change in points for both users // user 1: index 0 // user 2: index 1 int[] pointsCalculated = _userGameService.CalculatePoints(_userGameService.getUserPointsByMonth(user1.Id, gamePlayed.Id.ToString()), _userGameService.getUserPointsByMonth(user2.Id, gamePlayed.Id.ToString()), winner, gamePlayed.Id.ToString()); return(new UserGame { User_01_Id = model.User_01_Id, User_01_Team = model.User_01_Team, User_02_Id = model.User_02_Id, User_02_Team = model.User_02_Team, //Score GameScoreUser01 = player1Score, GameScoreUser02 = player2Score, //Winner, “user1”, “user2”, “DRAW” Winner = winnerId, //Referee details. Only keep their User.Id RefereeUserId = model.RefereeUserId, // Name of the game GamePlayed = gamePlayed, // User_01_Awarder_Points User_01_Awarder_Points = pointsCalculated[0], // User_02_Awarder_Points User_02_Awarder_Points = pointsCalculated[1] }); }