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

                var listGamesReq = new ListGamesReq
                {
                    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)),
                    },
                };

                _stopwatch.Start();

                var listGamesResp = await adminService.ListGamesAsync(listGamesReq);

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

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

                var games = listGamesResp.Games.Select(p => new Models.Game
                {
                    GameId = p.GameId,
                    Label  = p.Label,
                    State  = p.State,
                });

                return(games);
            }
        }
 private void ListGamesImpl(ListGamesReq req, ListGamesResp resp)
 {
     resp.Games = Server.GameManager
                  .ListGames(Server.TeamRegistry.GetTeam(req.Auth.TeamName))
                  .Select(g => new EnGameInfo(g)).ToList();
 }
 public ListGamesResp ListGames(ListGamesReq req)
 {
     return(HandleServiceCall(req, new ListGamesResp(), ListGamesImpl));
 }