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
- FloaterParagraph.cs
- SchemaElementDecl.cs
- WizardPanelChangingEventArgs.cs
- PropertyStore.cs
- Zone.cs
- XmlStrings.cs
- EdmSchemaError.cs
- CalendarDay.cs
- QueueNameHelper.cs
- ObfuscateAssemblyAttribute.cs
- SchemaSetCompiler.cs
- PageAsyncTask.cs
- Int32.cs
- ToolBarButtonClickEvent.cs
- TextElement.cs
- AlgoModule.cs
- SHA384Managed.cs
- ZipIOFileItemStream.cs
- ConfigXmlCDataSection.cs
- HMACRIPEMD160.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- ThumbButtonInfo.cs
- StyleSheetDesigner.cs
- DateTimeConstantAttribute.cs
- XPathAncestorIterator.cs
- QueueProcessor.cs
- SqlServer2KCompatibilityAnnotation.cs
- ColorKeyFrameCollection.cs
- ResourceExpression.cs
- ToolStripSystemRenderer.cs
- IISMapPath.cs
- DictionaryKeyPropertyAttribute.cs
- HttpCapabilitiesEvaluator.cs
- EntityCommand.cs
- Debug.cs
- PagedDataSource.cs
- DomNameTable.cs
- MsmqHostedTransportManager.cs
- RowUpdatingEventArgs.cs
- CategoryList.cs
- ResourceManager.cs
- ZeroOpNode.cs
- TemplateContainer.cs
- DrawingContextDrawingContextWalker.cs
- NetworkInformationException.cs
- MemberNameValidator.cs
- EdmMember.cs
- CacheVirtualItemsEvent.cs
- OdbcConnectionOpen.cs
- SystemIcons.cs
- Color.cs
- Bold.cs
- ListViewItem.cs
- CalendarDay.cs
- ClientRuntimeConfig.cs
- ErrorEventArgs.cs
- QuotaThrottle.cs
- ReadOnlyDictionary.cs
- WebReference.cs
- FunctionImportElement.cs
- ExtenderControl.cs
- MenuRenderer.cs
- CDSCollectionETWBCLProvider.cs
- TimerElapsedEvenArgs.cs
- DefaultDialogButtons.cs
- ContainerParagraph.cs
- ILGenerator.cs
- UriParserTemplates.cs
- X509Extension.cs
- DllNotFoundException.cs
- DynamicEndpoint.cs
- CompileXomlTask.cs
- ComEventsInfo.cs
- BamlStream.cs
- ErrorFormatter.cs
- DockPanel.cs
- TdsParameterSetter.cs
- ChineseLunisolarCalendar.cs
- MetadataAssemblyHelper.cs
- PointIndependentAnimationStorage.cs
- ExtensionSimplifierMarkupObject.cs
- Popup.cs
- Publisher.cs
- TransactionCache.cs
- NavigationWindow.cs
- WizardSideBarListControlItemEventArgs.cs
- ServiceNotStartedException.cs
- SupportsEventValidationAttribute.cs
- MexHttpBindingCollectionElement.cs
- TextParagraphProperties.cs
- InputLanguage.cs
- ConnectionManagementElement.cs
- DispatcherHooks.cs
- InputMethodStateChangeEventArgs.cs
- GPRECT.cs
- WsatAdminException.cs
- ComplusEndpointConfigContainer.cs
- OdbcStatementHandle.cs
- TimeoutException.cs
- FormatStringEditor.cs