diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/RemoveUserRoleTask.Fields.Design.cshtml b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/RemoveUserRoleTask.Fields.Design.cshtml index d0830c33a77..ea87856a339 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/RemoveUserRoleTask.Fields.Design.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/RemoveUserRoleTask.Fields.Design.cshtml @@ -4,6 +4,6 @@ @using OrchardCore.Users.Workflows.ViewModels @model ActivityViewModel
-

@Model.Activity.GetTitleOrDefault(() => T["Remove user from role"])

+

@Model.Activity.GetTitleOrDefault(() => T["Remove user from a role"])

@T["{0} from role {1}", Model.Activity.UserName, Model.Activity.RoleName] diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Design.cshtml b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Design.cshtml index bd209158a49..0db9a69d562 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Design.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Design.cshtml @@ -6,4 +6,4 @@

@Model.Activity.GetTitleOrDefault(() => T["Select users in role"])

-@T["Store users of role {0} to {1}", Model.Activity.RoleName, Model.Activity.PropertyName] +@T["Stores users from role {0} to {1}", Model.Activity.RoleName, Model.Activity.OutputKeyName] diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Edit.cshtml b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Edit.cshtml index 2ca16ac0ed0..cb71bf4e64c 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Edit.cshtml +++ b/src/OrchardCore.Modules/OrchardCore.Users/Views/Items/SelectUsersInRoleTask.Fields.Edit.cshtml @@ -1,11 +1,11 @@ @using OrchardCore.Users.Workflows.ViewModels @model SelectUsersInRoleTaskViewModel -
- - - - @T["The PropertyName to save list. With Liquid support."] +
+ + + + @T["The Output Key Name to save list. With Liquid support."]
diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Activities/SelectUsersInRoleTask.cs b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Activities/SelectUsersInRoleTask.cs index 685f1fc3660..66c3e39e323 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Activities/SelectUsersInRoleTask.cs +++ b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Activities/SelectUsersInRoleTask.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -34,7 +33,7 @@ public SelectUsersInRoleTask(UserManager userManager, IUserService userSe public override LocalizedString Category => S["User"]; - public WorkflowExpression PropertyName + public WorkflowExpression OutputKeyName { get => GetProperty(() => new WorkflowExpression()); set => SetProperty(value); @@ -48,32 +47,22 @@ public WorkflowExpression RoleName public override IEnumerable GetPossibleOutcomes(WorkflowExecutionContext workflowContext, ActivityContext activityContext) { - return Outcomes(S["Done"], S["Empty"], S["Failed"]); + return Outcomes(S["Done"], S["Failed"]); } public override async Task ExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext) { - var propName = await _expressionEvaluator.EvaluateAsync(PropertyName, workflowContext, null); + var propKeyName = await _expressionEvaluator.EvaluateAsync(OutputKeyName, workflowContext, null); var roleName = await _expressionEvaluator.EvaluateAsync(RoleName, workflowContext, null); - if (!string.IsNullOrEmpty(propName) && !string.IsNullOrEmpty(roleName)) + if (!string.IsNullOrEmpty(propKeyName) && !string.IsNullOrEmpty(roleName)) { var usersInRole = await _userManager.GetUsersInRoleAsync(roleName); if (usersInRole.Count > 0) { - List output; - if (propName.Contains("email", StringComparison.InvariantCultureIgnoreCase)) - { - output = usersInRole.Select((u) => (u as User)?.Email).ToList(); - } - else - { - output = usersInRole.Select(u => u.UserName).ToList(); - } - workflowContext.Properties[propName] = string.Join(",", output); + workflowContext.Output[propKeyName] = usersInRole.Select(u => (u as User).UserId).ToArray(); return Outcomes("Done"); } - return Outcomes("Empty"); } return Outcomes("Failed"); } diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Drivers/SelectUsersInRoleTaskDisplayDriver.cs b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Drivers/SelectUsersInRoleTaskDisplayDriver.cs index 351ccd33571..ae957def9f9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Drivers/SelectUsersInRoleTaskDisplayDriver.cs +++ b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/Drivers/SelectUsersInRoleTaskDisplayDriver.cs @@ -9,13 +9,13 @@ public class SelectUsersInRoleTaskDisplayDriver : ActivityDisplayDriver(model.PropertyName); + activity.OutputKeyName = new WorkflowExpression(model.OutputKeyName); activity.RoleName = new WorkflowExpression(model.RoleName); } } diff --git a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/ViewModels/SelectUsersInRoleTaskViewModel.cs b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/ViewModels/SelectUsersInRoleTaskViewModel.cs index 1eb72800b0a..5776458c4fa 100644 --- a/src/OrchardCore.Modules/OrchardCore.Users/Workflows/ViewModels/SelectUsersInRoleTaskViewModel.cs +++ b/src/OrchardCore.Modules/OrchardCore.Users/Workflows/ViewModels/SelectUsersInRoleTaskViewModel.cs @@ -5,7 +5,7 @@ namespace OrchardCore.Users.Workflows.ViewModels public class SelectUsersInRoleTaskViewModel { [Required] - public string PropertyName { get; set; } + public string OutputKeyName { get; set; } [Required] public string RoleName { get; set; }