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
- BasicCellRelation.cs
- UpDownBase.cs
- EmissiveMaterial.cs
- DataGridItemAttachedStorage.cs
- Delegate.cs
- XmlNodeList.cs
- RelatedImageListAttribute.cs
- MediaContext.cs
- StringUtil.cs
- coordinator.cs
- SiteMembershipCondition.cs
- EntityCommandDefinition.cs
- OptimalTextSource.cs
- TextDocumentView.cs
- LinqDataSourceEditData.cs
- WebPartCancelEventArgs.cs
- ConditionalExpression.cs
- Publisher.cs
- QuotedPairReader.cs
- HitTestParameters.cs
- storepermission.cs
- ToolStripTextBox.cs
- SystemUnicastIPAddressInformation.cs
- KeyProperty.cs
- ElementNotEnabledException.cs
- CubicEase.cs
- RSAOAEPKeyExchangeFormatter.cs
- SocketPermission.cs
- SafeLocalMemHandle.cs
- StateDesigner.cs
- ItemList.cs
- FrugalList.cs
- SchemaTableColumn.cs
- ExceptionHelpers.cs
- XmlSchemaAttributeGroup.cs
- PageContentCollection.cs
- LightweightCodeGenerator.cs
- XslAstAnalyzer.cs
- ManagementQuery.cs
- RoleService.cs
- ExchangeUtilities.cs
- FontUnit.cs
- ConfigurationManagerHelper.cs
- SectionInformation.cs
- ContentElementAutomationPeer.cs
- GroupItemAutomationPeer.cs
- FrameworkElement.cs
- MatrixTransform3D.cs
- ProcessModelSection.cs
- AssemblyResourceLoader.cs
- PointConverter.cs
- DataKeyCollection.cs
- VarRefManager.cs
- RtfToXamlLexer.cs
- InputScope.cs
- ConnectionProviderAttribute.cs
- TriggerCollection.cs
- XamlDebuggerXmlReader.cs
- Point3DCollectionValueSerializer.cs
- Interlocked.cs
- HierarchicalDataSourceControl.cs
- FilterQueryOptionExpression.cs
- SelectionService.cs
- LookupBindingPropertiesAttribute.cs
- TextEditorDragDrop.cs
- InputQueueChannel.cs
- Request.cs
- SqlClientWrapperSmiStreamChars.cs
- ActivitySurrogateSelector.cs
- DataGrid.cs
- CookieProtection.cs
- HMACRIPEMD160.cs
- SQLGuidStorage.cs
- OdbcPermission.cs
- DataPagerCommandEventArgs.cs
- UpdateTracker.cs
- HtmlInputButton.cs
- WebPartPersonalization.cs
- WindowsGraphics2.cs
- Documentation.cs
- SynchronizationLockException.cs
- AttachedPropertyMethodSelector.cs
- RankException.cs
- Int64Storage.cs
- SqlProviderServices.cs
- EventRouteFactory.cs
- AdvancedBindingEditor.cs
- PerformanceCounterLib.cs
- DocumentCollection.cs
- WindowsEditBoxRange.cs
- OperatingSystemVersionCheck.cs
- SubordinateTransaction.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ThreadLocal.cs
- Lasso.cs
- SystemResources.cs
- sqlstateclientmanager.cs
- UniqueContractNameValidationBehavior.cs
- HasCopySemanticsAttribute.cs
- DetailsView.cs