Public Access
Strengthen workflow automation diagnostics
This commit is contained in:
@@ -230,11 +230,11 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
|
||||
switch (step.Uses.Trim().ToLowerInvariant())
|
||||
{
|
||||
case "add_attendee":
|
||||
return AddUnique(meeting.Frontmatter.Attendees, value);
|
||||
return AddUnique(meeting.Frontmatter.Attendees, value, MeetingAttendeeNames.NormalizeDisplayName);
|
||||
case "remove_attendee":
|
||||
return RemoveValue(meeting.Frontmatter.Attendees, value);
|
||||
case "add_project":
|
||||
return AddUnique(meeting.Frontmatter.Projects, value);
|
||||
return AddUnique(meeting.Frontmatter.Projects, value, static project => project.Trim());
|
||||
case "set_property":
|
||||
return SetProperty(meeting, step.Property ?? step.Name, value);
|
||||
case "add_context":
|
||||
@@ -283,11 +283,17 @@ public sealed class MeetingWorkflowEngine : IMeetingWorkflowEngine
|
||||
throw new InvalidOperationException($"Unsupported meeting workflow property '{property}'.");
|
||||
}
|
||||
|
||||
private static bool AddUnique(List<string> values, string value)
|
||||
private static bool AddUnique(
|
||||
List<string> values,
|
||||
string value,
|
||||
Func<string, string> normalize)
|
||||
{
|
||||
var normalized = MeetingAttendeeNames.NormalizeDisplayName(value);
|
||||
var normalized = normalize(value);
|
||||
if (string.IsNullOrWhiteSpace(normalized) ||
|
||||
values.Any(existing => string.Equals(existing, normalized, StringComparison.OrdinalIgnoreCase)))
|
||||
values.Any(existing => string.Equals(
|
||||
normalize(existing),
|
||||
normalized,
|
||||
StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user