public async Task DispatchAsync(DispatchData dispatchData) { switch (dispatchData.NotificationType) { case NotificationType.Email: await _emailNotificationPort.DispatchAsync(dispatchData); break; default: throw new NotificationTypeNotSupportedException(dispatchData.NotificationType.ToString()); } }