public override void Handle(GetAppointmentsOfAPatientRequest request)
        {
            if (!IsRequestValid(request.SessionId, request.UserId))
            {
                return;
            }

            var eventStream           = dataCenter.GetEventStreamForAPatient(request.PatientId);
            var eventStreamAggregator = new EventStreamAggregator <Guid>(eventStream);

            Socket.SendNetworkMsg(new GetAppointmentsOfAPatientResponse(
                                      (IReadOnlyList <AppointmentTransferData>)eventStreamAggregator.AppointmentData
                                      )
                                  );
        }
        public override void Handle(GetAppointmentsOfADayRequest request)
        {
            if (!IsRequestValid(request.SessionId, request.UserId, request.MedicalPracticeId))
            {
                return;
            }

            var eventStream           = dataCenter.GetEventStreamForADay(new AggregateIdentifier(request.Day, request.MedicalPracticeId));
            var eventStreamAggregator = new EventStreamAggregator <AggregateIdentifier>(eventStream);

            Socket.SendNetworkMsg(
                new GetAppointmentsOfADayResponse(eventStream.Id.MedicalPracticeId,
                                                  eventStream.Id.PracticeVersion,
                                                  eventStreamAggregator.AggregateVersion,
                                                  (IReadOnlyList <AppointmentTransferData>)eventStreamAggregator.AppointmentData)
                );
        }
 public EventStream(TIdentifier id, IEnumerable <DomainEvent> initialEventStream = null)
 {
     Id     = id;
     events = initialEventStream?.ToList() ?? new List <DomainEvent>();
     eventStreamAggregator = new EventStreamAggregator <TIdentifier>(this);
 }