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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ModelPropertyCollectionImpl.cs
- WebPartTransformerAttribute.cs
- PropertyPath.cs
- WebPartDisplayModeEventArgs.cs
- FieldNameLookup.cs
- WebPartMinimizeVerb.cs
- UrlPath.cs
- XPathSelfQuery.cs
- KeyboardDevice.cs
- NativeMethods.cs
- StreamAsIStream.cs
- ImageSourceValueSerializer.cs
- XmlDocumentSurrogate.cs
- ParameterExpression.cs
- RuleAction.cs
- CodeSnippetStatement.cs
- CircleEase.cs
- ToolTipAutomationPeer.cs
- Application.cs
- WSFederationHttpBindingElement.cs
- EnvironmentPermission.cs
- ControlAdapter.cs
- ServiceObjectContainer.cs
- UnsafeNativeMethods.cs
- TransformProviderWrapper.cs
- AppendHelper.cs
- Message.cs
- XmlEntity.cs
- TiffBitmapDecoder.cs
- DateTimeSerializationSection.cs
- ChunkedMemoryStream.cs
- ProxyAttribute.cs
- TimersDescriptionAttribute.cs
- XmlNamespaceDeclarationsAttribute.cs
- TraceFilter.cs
- Propagator.JoinPropagator.cs
- MemoryMappedViewAccessor.cs
- OperatingSystem.cs
- PropertyFilterAttribute.cs
- CustomTrackingRecord.cs
- AuthenticationModulesSection.cs
- AsyncStreamReader.cs
- HostProtectionException.cs
- HandleRef.cs
- EntryWrittenEventArgs.cs
- SelectionEditor.cs
- DoubleAnimationUsingPath.cs
- EntityStoreSchemaFilterEntry.cs
- CompensationDesigner.cs
- BitmapFrameEncode.cs
- LinkButton.cs
- DefaultEvaluationContext.cs
- XmlDataSourceNodeDescriptor.cs
- EventDescriptor.cs
- TraceContextEventArgs.cs
- WinEventWrap.cs
- ConcurrentQueue.cs
- IconHelper.cs
- DataControlField.cs
- SaveFileDialog.cs
- GlobalizationSection.cs
- ReadOnlyDataSource.cs
- SqlDataReaderSmi.cs
- XmlNotation.cs
- PackageDigitalSignatureManager.cs
- EntityModelBuildProvider.cs
- MaterializeFromAtom.cs
- WebConfigurationFileMap.cs
- PenLineCapValidation.cs
- GreenMethods.cs
- ComplexType.cs
- _RequestLifetimeSetter.cs
- BezierSegment.cs
- TypeConstant.cs
- XmlWellformedWriter.cs
- CultureNotFoundException.cs
- SourceFileInfo.cs
- MergeExecutor.cs
- SystemIPInterfaceProperties.cs
- DocobjHost.cs
- DefaultAutoFieldGenerator.cs
- HierarchicalDataTemplate.cs
- SmiMetaData.cs
- WebMessageEncoderFactory.cs
- MetadataSerializer.cs
- DelegatingHeader.cs
- XmlSerializableServices.cs
- DllHostedComPlusServiceHost.cs
- StaticContext.cs
- Int32Storage.cs
- InstancePersistenceCommandException.cs
- ColumnReorderedEventArgs.cs
- StrongName.cs
- TimelineCollection.cs
- PermissionRequestEvidence.cs
- MouseActionValueSerializer.cs
- FontUnitConverter.cs
- ConfigurationProviderException.cs
- KnownTypeDataContractResolver.cs
- WebPartZoneAutoFormat.cs