示例#1
0
        public HttpResponseMessage RegisterUser([FromBody] UserNotLoggedModel user)
        {
            try
            {
                data.CreateUser(user.Username, user.AuthCode);
                var sessionKey = data.LoginUser(user.Username, user.AuthCode);
                var loggedUser = new UserLoggedModel()
                {
                    SessionKey = sessionKey
                };

                return(Request.CreateResponse(HttpStatusCode.OK, loggedUser));
            }
            catch (HttpException e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message));
            }
        }
示例#2
0
 public HttpResponseMessage StartGame(string sessionKey, int gameId)
 {
     var responseMsg = this.PerformOperation(() =>
     {
         var userId = UserDataPersister.LoginUser(sessionKey);
         GameDataPersister.StartGame(gameId);
     });
     return responseMsg;
 }
示例#3
0
 public HttpResponseMessage GetActiveGames(string sessionKey)
 {
     var responseMsg = this.PerformOperation(() =>
     {
         var userId = UserDataPersister.LoginUser(sessionKey);
         IEnumerable<OpenGameModel> games = GameDataPersister.GetActiveGames(userId);
         return games;
     });
     return responseMsg;
 }
示例#4
0
 public HttpResponseMessage JoinGame(string sessionKey, [FromBody]
                                     GameModel gameModel)
 {
     var responseMsg = this.PerformOperation(() =>
     {
         var userId = UserDataPersister.LoginUser(sessionKey);
         GameDataPersister.JoinGame(userId, gameModel.Id, gameModel.Password);
     });
     return responseMsg;
 }
示例#5
0
        public HttpResponseMessage GetUnreadMessages(string sessionKey)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                var userId   = UserDataPersister.LoginUser(sessionKey);
                var messages = MessagesDataPersister.GetUnreadMessages(userId);
                return(messages);
            });

            return(responseMsg);
        }
示例#6
0
        public HttpResponseMessage GetAllUsers(string sessionKey)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                UserDataPersister.LoginUser(sessionKey);
                IEnumerable <UserModel> users = UserDataPersister.GetAllUsers();
                return(users);
            });

            return(responseMsg);
        }
示例#7
0
        public HttpResponseMessage PerformDefend(string sessionKey, int gameId, [FromBody]
                                                 int unitId)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                var userId = UserDataPersister.LoginUser(sessionKey);
                BattleDataPersister.PerformDefend(userId, gameId, unitId);
            });

            return(responseMsg);
        }
示例#8
0
        public HttpResponseMessage PerformAttack(string sessionKey, int gameId, [FromBody]
                                                 MoveModel move)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                var userId = UserDataPersister.LoginUser(sessionKey);
                BattleDataPersister.PerformAttack(userId, gameId, move.UnitId, move.Position.X, move.Position.Y);
            });

            return(responseMsg);
        }
示例#9
0
        public HttpResponseMessage GetBattleField(string sessionKey, int gameId)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                UserDataPersister.LoginUser(sessionKey);

                BattleFieldModel gameField = GameDataPersister.GetBattleField(gameId);

                return gameField;
            });
            return responseMsg;
        }
示例#10
0
        public HttpResponseMessage StartGame(string sessionKey, int gameId)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                var userId = UserDataPersister.LoginUser(sessionKey);
                GameDataPersister.StartGame(gameId);
            });

            if (responseMsg.StatusCode == HttpStatusCode.OK)
            {
                responseMsg.StatusCode = HttpStatusCode.NoContent;
            }
            return(responseMsg);
        }
        public HttpResponseMessage LoginUser(UserLoginModel user)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                string nickname = string.Empty;
                var sessionKey  = UserDataPersister.LoginUser(user.Username, user.AuthCode, out nickname);
                return(new UserLoggedModel()
                {
                    Nickname = nickname,
                    SessionKey = sessionKey
                });
            });

            return(responseMsg);
        }
示例#12
0
        public HttpResponseMessage JoinGame(string sessionKey, [FromBody]
                                            GameModel gameModel)
        {
            var responseMsg = this.PerformOperation(() =>
            {
                var userId = UserDataPersister.LoginUser(sessionKey);
                GameDataPersister.JoinGame(userId, gameModel.Id, gameModel.Password);
            });

            if (responseMsg.StatusCode == HttpStatusCode.OK)
            {
                responseMsg.StatusCode = HttpStatusCode.NoContent;
            }
            return(responseMsg);
        }