Пример #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 void HandleCreateSubscription(Guid userId, string userName, Guid roomId, DateTime timeStamp)
 {
     roomState.AddSubscriber(new RoomSubscription {
         Subscriber = userName, LastVisit = timeStamp
     });
     visitRepository.Add(new UserRoom {
         UserId = userId, RoomId = roomId, LastVisitTimeStamp = timeStamp
     });
 }