示例#1
0
        public IHttpActionResult CreateChat(string token)
        {
            var userManager     = new UserManager();
            var gameSession     = new GameSession();
            var sessionManager  = new SessionManager();
            var questionManager = new QuestionManager();
            var question        = questionManager.RandomizeQuestion();

            try
            {
                gameSession = _GameSessionManager.CreateGameSession(question);
                var session = sessionManager.GetSession(token);
                var user    = userManager.GetUser(session.UId);
                var host    = _GameMan.AssignHost(user.SsoId);

                var userGameStorage = new UserGameStorage()
                {
                    UId = user.ID,
                    GId = gameSession.Id
                };

                var storage        = _UserGameStoreManager.CreateUGS(userGameStorage);
                var gameSessionDTO = new GameSessionDTO()
                {
                    Token         = gameSession.Token,
                    Question      = questionManager.GetQuestion(gameSession.QuestionID).QuestionString,
                    IsSessionUsed = gameSession.isSessionUsed,
                    PlayerCount   = gameSession.PlayerCount,
                    GameRole      = user.Role,
                    Order         = userGameStorage.Order
                };

                return(Ok(gameSessionDTO));
            }
            catch (ArgumentException)
            {
                return(Conflict());
            }
            catch (Exception e)
            {
                return(Content(HttpStatusCode.BadRequest, e.ToString() + question.QuestionString));
            }
        }