As a product owner, I want that Scheduling application send emails to Clients about their appointments statuses.
An email must be send to Client with information about the appointment and a link (Public Site link) to confirm the appointment (booked, updated or cancelled). The Publis Site should show a friendly confirmation message and care about Client's preferred language.
Users must receive an app notification about the confirmed appointment by the Client.
Add SchedulingEmailSender api to build emails.
Add EmailService api to send emails.
Expected flow for a created appointment up to being confirmed:
An User book an appointment.
Other Users receive an app notification about the created appointment.
The Client (owner) receive an email about its appointment status with a link to confirm the appointment.
The Client click/use the link provided in the email message and gets redirected to the Public Site.
The Public Site gets communication to Scheduling Api and confirm the appointment.
Users receive an app notification about the confirmed appointment from Public Site.
Expected flow for an updated appointment (only if the start date is changed) up to being confirmed:
An User update an appointment where its start date is changed.
Other Users receive an app notification about the updated appointment.
The Client (owner) receive an email about its appointment status with a link to confirm the appointment.
The Client click/use the link provided in the email message and gets redirected to the Public Site.
The Public Site gets communication to Scheduling Api and confirm the appointment.
Users receive an app notification about the confirmed appointment from Public Site.
Expected flow for a deleted appointment:
An User delete an appointment.
Other Users receive an app notification about the deleted appointment.
The Client (owner) receive an email about its appointment status.
Criteria:
Add preferred language to Client model in ClinicManagement and Scheduling apps.
Add preferred language field into Client's add/edit/detail component pages in ClinicManagement app.
Add preferred language field into Client's detail component page in Scheduling app.
Request email if appointment is created in Scheduling App.
Request email if appointment is deleted in Scheduling App.
Request email if Appointment's StartOn field is changed in Scheduling App.
Users must receive app notification when a created appointment is confirmed.
Users must receive app notification when an updated (StartOn date is changed) appointment is confirmed.
Add SchedulingEmailSender Api empty solution.
SchedulingEmailSender Api must be subscribed to MassTransit to consume incoming message contracts from upstream contexts (Scheduling Api).
Implement Email Engine into SchedulingEmailSender Api to build emails and send to EmailService Api.
The Email Engine should build email body from Razor/Html templates.
The Email Engine should build email body with respective Client's preferred language.
The Email Engine must encrypt parameteres on confirmation link to obfuscate information on Public Site's.
Add functionallity to provide the Appointment's confirmation link on email messages.
Add EmailService Api to consume and send emails requested by the SchedulingEmailSender Api.
Handle incoming links in Public Site.
Decrypt parameteres on confirmation link in Public Site.
Public Site must send Appointment's Id to Scheduling Api through a contract on ServiceBus.
As a product owner, I want that Scheduling application send emails to Clients about their appointments statuses. An email must be send to Client with information about the appointment and a link (Public Site link) to confirm the appointment (booked, updated or cancelled). The Publis Site should show a friendly confirmation message and care about Client's preferred language. Users must receive an app notification about the confirmed appointment by the Client.
Add SchedulingEmailSender api to build emails. Add EmailService api to send emails.
Expected flow for a created appointment up to being confirmed:
Expected flow for an updated appointment (only if the start date is changed) up to being confirmed:
Expected flow for a deleted appointment:
Criteria: