public IActionResult Lobby() { if (!_signInManager.IsSignedIn(User)) { return(RedirectToAction("Login", "Account")); } RefreshUser(User); var uid = _signInManager.UserManager.GetUserId(User); var friends = _GameRepo.GetFriendList(uid); var lobbyUsers = _GameRepo.GetPlayerLobby(uid); var games = _GameRepo.GetUserGameList(uid); FriendsPartialViewModel friendsAndGames = new FriendsPartialViewModel { UserFriends = friends, UserGames = games, ActiveGame = "" }; var lobbyAndFriends = new LobbyAndFriendsViewModel { CurrentLobbyUsers = lobbyUsers.Users, Friends = friendsAndGames, IsInLobby = _GameRepo.IsInLobby(uid) ? true : false }; return(View(lobbyAndFriends)); }
public IActionResult FindFriends() { if (!_signInManager.IsSignedIn(User)) { return(RedirectToAction("Login", "Account")); } RefreshUser(User); var uid = _signInManager.UserManager.GetUserId(User); var friends = _GameRepo.GetFriendList(uid); var games = _GameRepo.GetUserGameList(uid); FriendsPartialViewModel friendsAndGames = new FriendsPartialViewModel { UserFriends = friends, UserGames = games, ActiveGame = "" }; return(View(friendsAndGames)); }
public IActionResult Sidebar([FromBody] GameController.GameRefreshData data) { var uid = _signInManager.UserManager.GetUserId(User); var friends = _GameRepo.GetFriendList(uid); var games = _GameRepo.GetUserGameList(uid); FriendsPartialViewModel friendsAndGames = new FriendsPartialViewModel { UserFriends = friends, UserGames = games, ActiveGame = data.GameID }; var sidebar = new SidebarModel(); var t1 = this.RenderViewAsync <FriendsPartialViewModel>("_ActiveGamesPartial", friendsAndGames, true); var t2 = this.RenderViewAsync <IEnumerable <User> >("_OnlineFriendsPartial", friends.OnlineFriends, true); var t3 = this.RenderViewAsync <IEnumerable <User> >("_OfflineFriendsPartial", friends.OfflineFriends, true); Task.WaitAll(new Task <string>[] { t1, t2, t3 }); sidebar.ActiveGames = t1.Result; sidebar.OnlineFriends = t2.Result; sidebar.OfflineFriends = t3.Result; return(Json(sidebar)); }
public IActionResult Index(string gameId) { if (!_signInManager.IsSignedIn(User)) { return(RedirectToAction("Login", "Account")); } RefreshUser(User); var userId = _signInManager.UserManager.GetUserId(User); GameStateDTO gamestate; try { gamestate = _GameRepo.GetGamestate(gameId); } catch (ArgumentException e) { return(RedirectToAction("Index", "Home")); } var friends = _GameRepo.GetFriendList(userId); var chat = _GameRepo.GetMessageLog(gameId); var games = _GameRepo.GetAllGames(userId); var emptyStringList = new List <string>(); List <string> changedTiles = new List <string>(); foreach (char f in Enumerable.Range('a', 8)) { foreach (char r in Enumerable.Range('1', 8)) { changedTiles.Add(f.ToString() + r.ToString()); } } FriendsPartialViewModel friendsAndGames = new FriendsPartialViewModel { UserFriends = friends, UserGames = _GameRepo.GetUserGameList(userId), ActiveGame = gameId }; ChessboardPartialViewModel board = new ChessboardPartialViewModel { GameState = gamestate, SelectedTile = null, CanMoveToAndTakeTiles = emptyStringList, CanMoveToTiles = emptyStringList, GameId = gameId, PlayerColor = _GameRepo.GetPlayerColor(gameId, userId), ChangedTiles = changedTiles }; ChatPartialViewModel chatSystem = new ChatPartialViewModel { GameID = gameId, ChatMessages = chat }; string opponent; try { opponent = games.Where(e => e.GameID.Equals(gameId)).FirstOrDefault().OpponentName; } catch (NullReferenceException e) { return(RedirectToAction("Index", "Home")); } return(View(new GameViewModel { FriendsAndGames = friendsAndGames, Board = board, Chat = chatSystem, OpponentName = opponent })); }