public UserStateInfoResponse Get(HttpRequestMessage request) { long id; if (!_authenticationManager.TryAuthenticateForReadOperation(request.GetToken(), out id)) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)); } var queryTime = _nowProvider.Now; TimeWarpUserState state; if (!_userStateManager.TryGetCurrentState(id, queryTime, out state)) { if (Log.IsDebugEnabled) { Log.DebugFormat("no userState for account ({0}), returning default", id); } return(GetDefaultResponse(id, queryTime)); } return(state.ConvertToPublicV001(queryTime)); }
public IEnumerable <UserStateInfoResponse> Get(int roomId) { var queryTime = _nowProvider.Now; var room = _rooms.GetRoom(roomId); if (room == null) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NoContent)); } var accounts = room.Users; var results = new List <UserStateInfoResponse>(); foreach (var account in accounts) { var removalTimeSpan = account.AccountType == AccountType.Quick ? _roomRemovalPolicy.QuickUsers : _roomRemovalPolicy.StandardUsers; TimeWarpUserState state; if (_userStateManager.TryGetCurrentState(account.Id, queryTime, out state)) { if ((queryTime.Subtract(state.PeriodStartTime) < removalTimeSpan)) { var publicObject = state.ConvertToPublicV001(queryTime); results.Add(publicObject); } } } return(results); }