Policy.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Policy.cs / 1305376 / Policy.cs

                            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)] 
    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 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
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)] 
    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 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK