Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / EventDriven.cs / 1305376 / EventDriven.cs
namespace System.Workflow.Activities { #region Imports using System; using System.Text; using System.Reflection; using System.Collections; using System.Collections.Generic; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Collections.ObjectModel; using System.Workflow.Activities.Common; #endregion [SRDescription(SR.EventDrivenActivityDescription)] [Designer(typeof(EventDrivenDesigner), typeof(IDesigner))] [ToolboxItem(typeof(ActivityToolboxItem))] [ToolboxBitmap(typeof(EventDrivenActivity), "Resources.EventDriven.png")] [ActivityValidator(typeof(EventDrivenValidator))] [SRCategory(SR.Standard)] public sealed class EventDrivenActivity : SequenceActivity { public EventDrivenActivity() { } public EventDrivenActivity(string name) : base(name) { } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public IEventActivity EventActivity { get { ReadOnlyCollectionenabledActivities = this.EnabledActivities; if (enabledActivities.Count == 0) return null; else return enabledActivities[0] as IEventActivity; } } } internal sealed class EventDrivenValidator : CompositeActivityValidator { public override ValidationErrorCollection Validate(ValidationManager manager, object obj) { ValidationErrorCollection validationErrors = base.Validate(manager, obj); EventDrivenActivity eventDriven = obj as EventDrivenActivity; if (eventDriven == null) throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(EventDrivenActivity).FullName), "obj"); // check parent if (!(eventDriven.Parent is ListenActivity) && !(eventDriven.Parent is EventHandlersActivity) && !(eventDriven.Parent is StateActivity) ) validationErrors.Add(new ValidationError(SR.GetError_EventDrivenParentNotListen(), ErrorNumbers.Error_EventDrivenParentNotListen)); // validate Event property string message = string.Empty; int errorNumber = -1; Activity firstActivity = (eventDriven.EnabledActivities.Count > 0) ? eventDriven.EnabledActivities[0] : null; if (firstActivity == null) { message = SR.GetString(SR.Error_EventDrivenNoFirstActivity); errorNumber = ErrorNumbers.Error_EventDrivenNoFirstActivity; } else if (!(firstActivity is IEventActivity)) { message = SR.GetError_EventDrivenInvalidFirstActivity(); errorNumber = ErrorNumbers.Error_EventDrivenInvalidFirstActivity; } if (message.Length > 0) validationErrors.Add(new ValidationError(message, errorNumber)); return validationErrors; } public override ValidationError ValidateActivityChange(Activity activity, ActivityChangeAction action) { if (activity == null) throw new ArgumentNullException("activity"); if (action == null) throw new ArgumentNullException("action"); RemovedActivityAction removedAction = action as RemovedActivityAction; if (removedAction != null && removedAction.RemovedActivityIndex == 0) { return new ValidationError(SR.GetString(SR.Error_EventActivityIsImmutable), ErrorNumbers.Error_DynamicActivity, false); } else { AddedActivityAction addedAction = action as AddedActivityAction; if (addedAction != null && addedAction.Index == 0) return new ValidationError(SR.GetString(SR.Error_EventActivityIsImmutable), ErrorNumbers.Error_DynamicActivity, false); } return base.ValidateActivityChange(activity, action); } } } // 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
- FixedSOMElement.cs
- InfoCardClaim.cs
- SimpleLine.cs
- AuthenticodeSignatureInformation.cs
- SafeRightsManagementHandle.cs
- Sentence.cs
- ForceCopyBuildProvider.cs
- ConcurrentDictionary.cs
- DescendantQuery.cs
- _DomainName.cs
- SmtpSection.cs
- PrintDialogException.cs
- IfJoinedCondition.cs
- GraphicsContainer.cs
- SafeHandles.cs
- ProcessInputEventArgs.cs
- RtfControlWordInfo.cs
- DbSetClause.cs
- OutputCacheSettings.cs
- DataControlImageButton.cs
- TimelineGroup.cs
- ContractMapping.cs
- HttpApplication.cs
- TimeoutConverter.cs
- httpserverutility.cs
- HwndStylusInputProvider.cs
- WebControlsSection.cs
- ViewBase.cs
- DataRowChangeEvent.cs
- ComponentRenameEvent.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- ManifestBasedResourceGroveler.cs
- MappingException.cs
- SharedHttpTransportManager.cs
- OrthographicCamera.cs
- SqlCacheDependency.cs
- ToolStripEditorManager.cs
- ConnectionStringSettingsCollection.cs
- FileDialog_Vista.cs
- TextBoxAutomationPeer.cs
- HTTPRemotingHandler.cs
- DoubleAverageAggregationOperator.cs
- DesignTimeTemplateParser.cs
- translator.cs
- SqlHelper.cs
- WebBrowserNavigatingEventHandler.cs
- NavigationHelper.cs
- BroadcastEventHelper.cs
- MDIWindowDialog.cs
- TextRunTypographyProperties.cs
- Emitter.cs
- DocumentSchemaValidator.cs
- TriggerAction.cs
- MultiPartWriter.cs
- EntityCommandDefinition.cs
- CursorConverter.cs
- PolyBezierSegmentFigureLogic.cs
- MDIClient.cs
- ClassHandlersStore.cs
- HtmlGenericControl.cs
- PeerApplication.cs
- BitmapEffectInput.cs
- DesignerContextDescriptor.cs
- DurableErrorHandler.cs
- MsmqOutputChannel.cs
- TextRangeEditTables.cs
- ClientSideQueueItem.cs
- HttpResponse.cs
- PeerNameRecordCollection.cs
- ForEachAction.cs
- ProxyManager.cs
- MimeParameter.cs
- CompositionTarget.cs
- LiteralControl.cs
- TdsParserHelperClasses.cs
- BooleanProjectedSlot.cs
- HttpRuntime.cs
- AuthorizationRuleCollection.cs
- HttpModule.cs
- Cursor.cs
- ConstructorBuilder.cs
- precedingsibling.cs
- PageClientProxyGenerator.cs
- XmlComment.cs
- COM2ColorConverter.cs
- DispatcherFrame.cs
- WindowsScrollBar.cs
- AutomationProperties.cs
- Visitors.cs
- TraceSection.cs
- StatusBarPanel.cs
- CreateUserWizardStep.cs
- ToolStripContextMenu.cs
- XmlSchemaExporter.cs
- TabControl.cs
- WorkItem.cs
- QuotedStringWriteStateInfo.cs
- CodeRemoveEventStatement.cs
- FixedSchema.cs
- SqlDataSourceStatusEventArgs.cs