Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
    /// <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);
    }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Initialize with given Game Details model.
 /// </summary>
 /// <param name="model">Game details model</param>
 public void Initialize(GameDetailsModel model)
 {
     _model = model;
 }