Added design time check to the Activity Execution Condition for a Boolean function.

This commit is contained in:
Nilesh Ghodekar 2015-12-13 07:53:46 +00:00
Родитель 70de51c835
Коммит ce7e60fcc9
11 изменённых файлов: 66 добавлений и 9 удалений

Просмотреть файл

@ -87,6 +87,15 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI {
}
}
/// <summary>
/// Looks up a localized string similar to The activity execution condition must be a boolean function. Consider wrapping your current condition inside a ConverToBoolean() function..
/// </summary>
internal static string ActivityExecutionConditionValidationError {
get {
return ResourceManager.GetString("ActivityExecutionConditionValidationError", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Actor String.
/// </summary>

Просмотреть файл

@ -798,4 +798,7 @@
<data name="RequestApprovalEscalationEmailTemplateFieldValidationError" xml:space="preserve">
<value>Escalation email template is required when escalated approvers are specified.</value>
</data>
<data name="ActivityExecutionConditionValidationError" xml:space="preserve">
<value>The activity execution condition must be a boolean function. Consider wrapping your current condition inside a ConverToBoolean() function.</value>
</data>
</root>

Просмотреть файл

@ -289,7 +289,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
}
catch (WorkflowActivityLibraryException ex)

Просмотреть файл

@ -484,7 +484,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
if (!string.IsNullOrEmpty(this.iteration.Value))

Просмотреть файл

@ -343,7 +343,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
if (!string.IsNullOrEmpty(this.iteration.Value))

Просмотреть файл

@ -455,7 +455,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
}
catch (WorkflowActivityLibraryException ex)

Просмотреть файл

@ -361,7 +361,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
ParseApprovers(this.approvers.Value);

Просмотреть файл

@ -526,7 +526,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
}
catch (WorkflowActivityLibraryException ex)

Просмотреть файл

@ -330,7 +330,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
ParseRecipient(this.cc.Value);

Просмотреть файл

@ -413,7 +413,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
if (!string.IsNullOrEmpty(this.iteration.Value))

Просмотреть файл

@ -411,7 +411,12 @@ namespace MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.UI.Forms
{
if (!string.IsNullOrEmpty(this.activityExecutionCondition.Value))
{
evaluator.ParseExpression(this.activityExecutionCondition.Value);
// Verify that the activity execution condition resolves to a Boolean value
if (!evaluator.IsBooleanExpression(this.activityExecutionCondition.Value))
{
this.controller.ValidationError = ActivitySettings.ActivityExecutionConditionValidationError;
return false;
}
}
}
}