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
- RequestQueue.cs
- FontDifferentiator.cs
- ConfigPathUtility.cs
- XamlTypeMapperSchemaContext.cs
- WorkflowTraceTransfer.cs
- DrawingCollection.cs
- HitTestResult.cs
- StreamGeometry.cs
- FixUp.cs
- ProxyDataContractResolver.cs
- DefaultPrintController.cs
- ListViewItem.cs
- UrlPath.cs
- SubMenuStyleCollection.cs
- SQLByte.cs
- PageSettings.cs
- CompileLiteralTextParser.cs
- CultureInfoConverter.cs
- BamlVersionHeader.cs
- RegionData.cs
- DbDataSourceEnumerator.cs
- RoleGroup.cs
- Utils.cs
- PenThreadWorker.cs
- WebServiceReceive.cs
- PrivilegeNotHeldException.cs
- TextTreeUndo.cs
- Color.cs
- XmlSchemaSet.cs
- TypeSchema.cs
- HtmlProps.cs
- GeneratedContractType.cs
- FolderBrowserDialog.cs
- ISessionStateStore.cs
- SqlInternalConnectionSmi.cs
- EntityException.cs
- ColumnMapTranslator.cs
- NavigationCommands.cs
- HttpServerVarsCollection.cs
- SqlException.cs
- ScalarType.cs
- ButtonStandardAdapter.cs
- BoolExpressionVisitors.cs
- BitmapEffectGroup.cs
- XmlWrappingWriter.cs
- DockPatternIdentifiers.cs
- TargetConverter.cs
- SqlDataReader.cs
- BaseValidator.cs
- DetailsViewModeEventArgs.cs
- ConcurrentBag.cs
- PropertyTabAttribute.cs
- shaperfactoryquerycachekey.cs
- PanelDesigner.cs
- DictionaryManager.cs
- TreeNodeStyle.cs
- IdnElement.cs
- DiagnosticsElement.cs
- HostingEnvironment.cs
- UniqueSet.cs
- ErrorCodes.cs
- smtpconnection.cs
- MenuItem.cs
- BaseDataList.cs
- SQLBinary.cs
- LayoutTableCell.cs
- DetailsViewDeleteEventArgs.cs
- XsdDataContractExporter.cs
- BitmapMetadataEnumerator.cs
- XsdBuilder.cs
- ToolStripRendererSwitcher.cs
- Deflater.cs
- BindingsCollection.cs
- ListComponentEditor.cs
- LinkGrep.cs
- LineProperties.cs
- SqlCommandSet.cs
- FtpCachePolicyElement.cs
- XmlException.cs
- TableTextElementCollectionInternal.cs
- DLinqDataModelProvider.cs
- OptimizedTemplateContent.cs
- ContextInformation.cs
- ProtocolsConfiguration.cs
- RegexCompiler.cs
- Parallel.cs
- HtmlAnchor.cs
- ValidatingPropertiesEventArgs.cs
- AppDomainProtocolHandler.cs
- ModelFactory.cs
- NonClientArea.cs
- XPathMultyIterator.cs
- X509RecipientCertificateServiceElement.cs
- MenuItemCollection.cs
- ObjectListComponentEditor.cs
- TrackBarRenderer.cs
- InputLanguageEventArgs.cs
- XmlBinaryReader.cs
- AttributedMetaModel.cs
- InvalidFilterCriteriaException.cs