In the FrontDesk/src/FrontDesk.Core/Handlers/EmailConfirmationHandler.cs
var appointmentToConfirm = schedule.Appointments.FirstOrDefault(a => a.Id == appointmentConfirmedEvent.AppointmentId);
appointmentToConfirm.Confirm(appointmentConfirmedEvent.DateOccurred);
This looks like manipulation of the Aggregate internals by bypassing Aggregate itself.
In this way Schedule aggregate can not guarantee data integrity.
I'm afraid that such example can lead to incorrect understanding of the Aggregate and its purpose.
In the FrontDesk/src/FrontDesk.Core/Handlers/EmailConfirmationHandler.cs
This looks like manipulation of the Aggregate internals by bypassing Aggregate itself. In this way Schedule aggregate can not guarantee data integrity. I'm afraid that such example can lead to incorrect understanding of the Aggregate and its purpose.
Shouldn't be:
OR