private void Apply(CameraStreamCreated @event) { Id = @event.AggregateId; OwnerUser = @event.OwnerUser; MeetingId = @event.MeetingId; StreamLink = @event.StreamSource; }
public void Handle(CameraStreamCreated @event) { using (var session = _documentStore.OpenSession()) { var doc = session.Load <MeetingDocument>(RavenDb.GetId <MeetingDocument>(@event.MeetingId)); var stream = doc.WebCameraStreams.FirstOrDefault(cameraStream => cameraStream.OwnerUser == @event.OwnerUser); if (stream == null) { doc.WebCameraStreams.Add(new WebCameraStream(@event.OwnerUser, @event.StreamSource)); } else { stream.StreamSource = @event.StreamSource; } session.SaveChanges(); _bus.PublishNotification(doc); } }