private RoomState GetRoomState(string roomName) { var room = roomRepository.GetByName(roomName); if (room == null) { return(null); } var stateFromDb = new RoomState(roomName); stateFromDb.AddId(room.Id); var visitors = visitRepository.Get(room.Id); if (visitors == null || !visitors.Any()) { return(stateFromDb); } visitors.ForEach(visitor => { var userSubscriber = userRepository.GetById(visitor.UserId.Value); stateFromDb.AddSubscriber(new RoomSubscription { Subscriber = userSubscriber.Name, LastVisit = visitor.LastVisitTimeStamp.Value }); }); return(stateFromDb); }
private UserState GetUserState(string userName) { var user = userRepository.GetByName(userName); if (user == null) { return(null); } var stateFromDb = new UserState(userName); stateFromDb.SetId(user.Id); if (user.LastRoomId.HasValue) { var room = roomRepository.GetById(user.LastRoomId.Value); stateFromDb.SetLastRoom(room); } return(stateFromDb); }