Пример #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);
        }
Пример #2
0
        private RoomState InitializeRoomState(string roomName)
        {
            var initializedRoomState = new RoomState(roomName);

            initializedRoomState.AddId(Guid.NewGuid());
            roomRepository.Add(new Room {
                Id = initializedRoomState.Id, Name = initializedRoomState.RoomName
            });

            return(initializedRoomState);
        }