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 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 }); }