Example #1
0
        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);
        }
Example #2
0
        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);
        }