public IHttpActionResult GetGameDetails(int id) { var currentUserId = this.User.Identity.GetUserId(); var game = this.Data.Games.Find(id); if (game == null || (game.RedUser.Id != currentUserId && (game.BlueUser == null || game.BlueUser.Id != currentUserId))) { return(BadRequest("Invalid game")); } var user = (game.RedUser.Id == currentUserId) ? game.RedUser : game.BlueUser; var opponent = (game.RedUser.Id == currentUserId) ? game.BlueUser : game.RedUser; int?userNumber = (game.RedUser.Id == user.Id) ? game.RedUserNumber : game.BlueUserNumber; var userGuesses = this.ExtractUserGuesses(game, user); var opponentGuesses = this.ExtractUserGuesses(game, opponent); var gameModel = new GameDetailsModel() { Id = game.Id, Name = game.Name, Red = game.RedUser.UserName, Blue = (game.BlueUser != null) ? game.BlueUser.UserName : "******", YourColor = (game.RedUser.Id == user.Id)? "red": "blue", YourNumber = userNumber, YourGuesses = userGuesses, OpponentGuesses = opponentGuesses, DateCreated = game.DateCreated, GameState = game.State.ToString() }; return(Ok(gameModel)); }
public List <IGameDetailsModel> SelectAll() { List <IGameDetailsModel> models = new List <IGameDetailsModel>(); using (SQLiteConnection cnn = Connect()) { SQLiteCommand comm; cnn.Open(); string query = "SELECT * FROM Games"; comm = new SQLiteCommand(query, cnn); SQLiteDataReader reader; reader = comm.ExecuteReader(); while (reader.Read()) { IGameDetailsModel model = new GameDetailsModel() { Id = reader.GetInt32(0), Name = reader.GetString(1), FirstReleaseDate = reader.GetInt32(2), Summary = reader.GetString(3), MyScore = reader.GetInt32(4) }; if (reader.GetString(5) != null) { model.PlatformPlaying = reader.GetString(5); } GameDetailsModel.Status s = (GameDetailsModel.Status)reader.GetInt32(6); model.GetStatus = s; models.Add(model); } return(AddPlatformsToGames(models)); } }
/// <summary> /// Initial setting up. /// </summary> private void Start( ) { _detailsPresenter._startGame += InitializeGame; _detailsPresenter._restartGame += RestartGame; GameDetailsModel gameDetailsModel = new GameDetailsModel( ); gameDetailsModel._isGameInactive = true; gameDetailsModel._timerInSeconds = 0; _detailsPresenter.Initialize(gameDetailsModel); }
public async Task <IHttpActionResult> Details(int id, [FromUri][Required] string user_id) { string userId = user_id; IPrincipal principal = RequestContext.Principal; await validationService.ValidateForDetails(principal, userId, id); GameDetailsModel model = await gameService.GetAsync(id, userId); return(Ok(model)); }
private static GameDetailsModel GameToModel(Game game, bool isFirstSidePlayer) { var model = new GameDetailsModel(); if (isFirstSidePlayer) { model.CurrentSide = SideToModel(game.FirstSide, true); model.OtherSide = SideToModel(game.SecondSide, false); } else { model.CurrentSide = SideToModel(game.SecondSide, true); model.OtherSide = SideToModel(game.FirstSide, false); } model.Id = game.Id; model.NextShotPlayerId = game.NextShotSide.PlayerFK; model.WinnerPlayerId = (game.WinnerSide != null) ? game.WinnerSide.PlayerFK : null; return(model); }
/// <summary> /// Initialize with given Game Details model. /// </summary> /// <param name="model">Game details model</param> public void Initialize(GameDetailsModel model) { _model = model; }