Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Suspend.cs / 1305376 / Suspend.cs
namespace System.Workflow.ComponentModel { #region Imports using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Collections.Generic; using System.Drawing.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Runtime; #endregion [SRDescription(SR.SuspendActivityDescription)] [ToolboxItem(typeof(ActivityToolboxItem))] [Designer(typeof(SuspendDesigner), typeof(IDesigner))] [ToolboxBitmap(typeof(SuspendActivity), "Resources.Suspend.png")] [ActivityValidator(typeof(SuspendValidator))] [SRCategory(SR.Standard)] public sealed class SuspendActivity : Activity { public static readonly DependencyProperty ErrorProperty = DependencyProperty.Register("Error", typeof(string), typeof(SuspendActivity)); #region Constructors public SuspendActivity() { } public SuspendActivity(string name) : base(name) { } #endregion protected internal override void Initialize(IServiceProvider provider) { if (this.Parent == null) throw new InvalidOperationException(SR.GetString(SR.Error_MustHaveParent)); base.Initialize(provider); } protected internal override sealed ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { executionContext.CloseActivity(); string suspendReason = this.Error; executionContext.SuspendWorkflowInstance(suspendReason); return ActivityExecutionStatus.Closed; } [Browsable(true)] [SRCategory(SR.Activity)] [SRDescription(SR.SuspendErrorMessageDescr)] [MergableProperty(false)] [DefaultValue((string)null)] public string Error { get { return base.GetValue(ErrorProperty) as string; } set { base.SetValue(ErrorProperty, value); } } } internal sealed class SuspendValidator : ActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); SuspendActivity suspend = obj as SuspendActivity; if (suspend == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(SuspendActivity).FullName), "obj"); CompositeActivity parent = suspend.Parent; while (parent != null) { if (parent.SupportsTransaction) { validationErrors.Add(new ValidationError(SR.GetString(SR.Error_SuspendInAtomicScope), ErrorNumbers.Error_SuspendInAtomicScope)); break; } parent = parent.Parent; } return validationErrors; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel { #region Imports using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Collections.Generic; using System.Drawing.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Runtime; #endregion [SRDescription(SR.SuspendActivityDescription)] [ToolboxItem(typeof(ActivityToolboxItem))] [Designer(typeof(SuspendDesigner), typeof(IDesigner))] [ToolboxBitmap(typeof(SuspendActivity), "Resources.Suspend.png")] [ActivityValidator(typeof(SuspendValidator))] [SRCategory(SR.Standard)] public sealed class SuspendActivity : Activity { public static readonly DependencyProperty ErrorProperty = DependencyProperty.Register("Error", typeof(string), typeof(SuspendActivity)); #region Constructors public SuspendActivity() { } public SuspendActivity(string name) : base(name) { } #endregion protected internal override void Initialize(IServiceProvider provider) { if (this.Parent == null) throw new InvalidOperationException(SR.GetString(SR.Error_MustHaveParent)); base.Initialize(provider); } protected internal override sealed ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { executionContext.CloseActivity(); string suspendReason = this.Error; executionContext.SuspendWorkflowInstance(suspendReason); return ActivityExecutionStatus.Closed; } [Browsable(true)] [SRCategory(SR.Activity)] [SRDescription(SR.SuspendErrorMessageDescr)] [MergableProperty(false)] [DefaultValue((string)null)] public string Error { get { return base.GetValue(ErrorProperty) as string; } set { base.SetValue(ErrorProperty, value); } } } internal sealed class SuspendValidator : ActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); SuspendActivity suspend = obj as SuspendActivity; if (suspend == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(SuspendActivity).FullName), "obj"); CompositeActivity parent = suspend.Parent; while (parent != null) { if (parent.SupportsTransaction) { validationErrors.Add(new ValidationError(SR.GetString(SR.Error_SuspendInAtomicScope), ErrorNumbers.Error_SuspendInAtomicScope)); break; } parent = parent.Parent; } return validationErrors; } } } // 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
- HtmlInputButton.cs
- MsmqInputChannelBase.cs
- Quaternion.cs
- Trace.cs
- SimpleHandlerFactory.cs
- TemplateControlParser.cs
- SqlBooleanMismatchVisitor.cs
- Scene3D.cs
- SchemaElement.cs
- TextBoxView.cs
- RegisteredScript.cs
- TextBreakpoint.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- MarkerProperties.cs
- StatusStrip.cs
- TextBox.cs
- HttpListenerException.cs
- DrawingAttributes.cs
- basemetadatamappingvisitor.cs
- LinkUtilities.cs
- Container.cs
- StatusBarDesigner.cs
- TemplateEditingVerb.cs
- StylusPlugInCollection.cs
- SqlProviderManifest.cs
- StylusEventArgs.cs
- SerialPinChanges.cs
- ComponentChangedEvent.cs
- EndpointReference.cs
- LeafCellTreeNode.cs
- ToolboxComponentsCreatedEventArgs.cs
- TextBox.cs
- dataprotectionpermission.cs
- AtlasWeb.Designer.cs
- SecondaryViewProvider.cs
- TextBox.cs
- ChangesetResponse.cs
- SafeNativeMethods.cs
- DescendentsWalkerBase.cs
- ToolBar.cs
- CodeRegionDirective.cs
- BitArray.cs
- AVElementHelper.cs
- Timer.cs
- PropertyItem.cs
- WorkingDirectoryEditor.cs
- GroupQuery.cs
- MSHTMLHost.cs
- InheritablePropertyChangeInfo.cs
- FrameworkTextComposition.cs
- Screen.cs
- UnsafeNativeMethods.cs
- AutomationPropertyInfo.cs
- SqlConnectionPoolGroupProviderInfo.cs
- X509RawDataKeyIdentifierClause.cs
- XmlSchemaValidationException.cs
- NumericUpDownAccelerationCollection.cs
- Axis.cs
- LayoutManager.cs
- UIElementParagraph.cs
- Label.cs
- SimplePropertyEntry.cs
- ExtentKey.cs
- SelectionService.cs
- Point4DValueSerializer.cs
- ClrPerspective.cs
- BaseDataBoundControlDesigner.cs
- ConfigurationPropertyAttribute.cs
- RegistryKey.cs
- CultureTable.cs
- XmlSchemaObjectCollection.cs
- HttpServerUtilityWrapper.cs
- ReadOnlyNameValueCollection.cs
- StringFunctions.cs
- RectKeyFrameCollection.cs
- AutomationAttributeInfo.cs
- ProgramPublisher.cs
- EntityContainerAssociationSet.cs
- RunWorkerCompletedEventArgs.cs
- XmlSchemaComplexContent.cs
- InputDevice.cs
- RootAction.cs
- ShimAsPublicXamlType.cs
- InkCanvasSelection.cs
- ErrorEventArgs.cs
- FileDialog.cs
- StyleModeStack.cs
- RadialGradientBrush.cs
- InvalidWMPVersionException.cs
- StringBlob.cs
- ReferencedCollectionType.cs
- AuthorizationRuleCollection.cs
- ArraySortHelper.cs
- BeginGetFileNameFromUserRequest.cs
- EnumValAlphaComparer.cs
- StorageEndPropertyMapping.cs
- Brush.cs
- DBConcurrencyException.cs
- DesignParameter.cs
- SettingsSection.cs