Beispiel #1
0
        public async Task <Models.Game> GetGameAsync(int gameId)
        {
            using (var adminService = new AdminServiceClient(new BasicHttpBinding(), new EndpointAddress(ConnectionData.Url)))
            {
                int sequenceNumber = SequenceNumber;

                var getGameDetailsReq = new GetGameDetailsReq
                {
                    Auth = new ReqAuth
                    {
                        ClientName     = ConnectionData.Username,
                        TeamName       = ConnectionData.TeamName,
                        SessionId      = _sessionId,
                        SequenceNumber = sequenceNumber,
                        AuthCode       =
                            GetAuthCode(string.Format("{0}:{1}:{2}:{3}{4}", ConnectionData.TeamName, ConnectionData.Username,
                                                      _sessionId, sequenceNumber, ConnectionData.Password)),
                    },
                    GameId = gameId,
                };

                _stopwatch.Start();

                var getGameDetailsResp = await adminService.GetGameDetailsAsync(getGameDetailsReq);

                _stopwatch.Stop();
                LastCallTime = _stopwatch.ElapsedMilliseconds;
                _stopwatch.Reset();

                if (getGameDetailsResp.Status != "OK")
                {
                    throw new Exception(getGameDetailsResp.Message);
                }

                return(new Models.Game
                {
                    GameId = getGameDetailsResp.GameDetails.GameId,
                    Label = getGameDetailsResp.GameDetails.Label,
                    State = getGameDetailsResp.GameDetails.State,
                    Players = getGameDetailsResp.GameDetails.Players.Select(p => new Player
                    {
                        GameId = p.GameId,
                        Name = p.Name,
                        Team = p.Team,
                        PlayerId = p.PlayerId,
                    })
                });
            }
        }
        private void GetGameDetailsImpl(GetGameDetailsReq req, GetGameDetailsResp resp)
        {
            GameDetails gameDetails = Server.GameManager.GetGameDetails(req.GameId, Server.TeamRegistry.GetTeam(req.Auth.TeamName));

            resp.GameDetails = new EnGameDetails(gameDetails);
        }
 public GetGameDetailsResp GetGameDetails(GetGameDetailsReq req)
 {
     return(HandleServiceCall(req, new GetGameDetailsResp(), GetGameDetailsImpl));
 }