You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
97
external/referencesource/System.Workflow.Activities/Policy.cs
vendored
Normal file
97
external/referencesource/System.Workflow.Activities/Policy.cs
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
namespace System.Workflow.Activities
|
||||
{
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Reflection;
|
||||
using System.Collections;
|
||||
using System.CodeDom;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.Design;
|
||||
using System.ComponentModel.Design.Serialization;
|
||||
using System.Drawing;
|
||||
using System.Workflow.ComponentModel;
|
||||
using System.Workflow.ComponentModel.Design;
|
||||
using System.Collections.Generic;
|
||||
using System.Workflow.Activities.Rules;
|
||||
using System.Workflow.Activities.Rules.Design;
|
||||
using System.Workflow.Runtime;
|
||||
using System.Workflow.ComponentModel.Compiler;
|
||||
using System.Drawing.Design;
|
||||
using System.Workflow.Activities.Common;
|
||||
|
||||
#region Class Policy
|
||||
|
||||
[SRDescription(SR.PolicyActivityDescription)]
|
||||
[ToolboxBitmap(typeof(PolicyActivity), "Resources.Rule.png")]
|
||||
[ToolboxItem(typeof(ActivityToolboxItem))]
|
||||
[Designer(typeof(PolicyDesigner), typeof(IDesigner))]
|
||||
[SRCategory(SR.Standard)]
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public sealed class PolicyActivity : Activity
|
||||
{
|
||||
#region Public Dependency Properties
|
||||
|
||||
public static readonly DependencyProperty RuleSetReferenceProperty = DependencyProperty.Register("RuleSetReference", typeof(RuleSetReference), typeof(PolicyActivity), new PropertyMetadata(DependencyPropertyOptions.Metadata, new Attribute[] { new ValidationOptionAttribute(ValidationOption.Required) }));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public PolicyActivity()
|
||||
{
|
||||
}
|
||||
|
||||
public PolicyActivity(string name)
|
||||
: base(name)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected override void Initialize(IServiceProvider provider)
|
||||
{
|
||||
// if there is no parent, then there will be no validation of RuleSetReference
|
||||
// as well, there will be no RuleDefinitions
|
||||
if (this.Parent == null)
|
||||
throw new InvalidOperationException(SR.GetString(SR.Error_MustHaveParent));
|
||||
|
||||
base.Initialize(provider);
|
||||
}
|
||||
|
||||
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
|
||||
{
|
||||
if (executionContext == null)
|
||||
throw new ArgumentNullException("executionContext");
|
||||
|
||||
Activity declaringActivity = Helpers.GetDeclaringActivity(this);
|
||||
if (declaringActivity == null)
|
||||
declaringActivity = Helpers.GetRootActivity(this);
|
||||
|
||||
RuleDefinitions ruleDefinitions = (RuleDefinitions)declaringActivity.GetValue(RuleDefinitions.RuleDefinitionsProperty);
|
||||
if (ruleDefinitions != null)
|
||||
{
|
||||
RuleSet ruleSet = ruleDefinitions.RuleSets[this.RuleSetReference.RuleSetName];
|
||||
if (ruleSet != null)
|
||||
{
|
||||
ruleSet.Execute(declaringActivity, executionContext);
|
||||
}
|
||||
}
|
||||
return ActivityExecutionStatus.Closed;
|
||||
}
|
||||
|
||||
[SRDescription(SR.RuleSetDescription)]
|
||||
[MergableProperty(false)]
|
||||
public RuleSetReference RuleSetReference
|
||||
{
|
||||
get
|
||||
{
|
||||
return (RuleSetReference)base.GetValue(RuleSetReferenceProperty);
|
||||
}
|
||||
set
|
||||
{
|
||||
base.SetValue(RuleSetReferenceProperty, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user