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
- RelationshipSet.cs
- WebPartDisplayModeCollection.cs
- SpeechRecognizer.cs
- _SslStream.cs
- StringConverter.cs
- FormViewAutoFormat.cs
- TagPrefixCollection.cs
- SerializationUtilities.cs
- Native.cs
- DataFormats.cs
- InvokeGenerator.cs
- TransformerConfigurationWizardBase.cs
- WhitespaceReader.cs
- PathSegment.cs
- BindingList.cs
- DataSourceCache.cs
- TemplateBamlTreeBuilder.cs
- ObjectDataSourceStatusEventArgs.cs
- ClientSponsor.cs
- DrawingImage.cs
- FileLoadException.cs
- BufferedMessageWriter.cs
- XmlSchemaComplexContentRestriction.cs
- SqlCacheDependencyDatabaseCollection.cs
- DataGridViewRowsAddedEventArgs.cs
- HttpFormatExtensions.cs
- WindowsSlider.cs
- ImageIndexConverter.cs
- IISMapPath.cs
- SerializationHelper.cs
- Positioning.cs
- LOSFormatter.cs
- InternalTypeHelper.cs
- MailWebEventProvider.cs
- BindingCompleteEventArgs.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- Utils.cs
- XmlHierarchicalEnumerable.cs
- TextTreeTextNode.cs
- FormViewRow.cs
- BitmapEffectCollection.cs
- DBConnectionString.cs
- GridEntryCollection.cs
- DeclaredTypeElement.cs
- AutomationPropertyChangedEventArgs.cs
- XmlLangPropertyAttribute.cs
- CompoundFileStorageReference.cs
- ParameterModifier.cs
- CodeObject.cs
- StrokeFIndices.cs
- WebServiceErrorEvent.cs
- WebReferenceOptions.cs
- PropertyTabAttribute.cs
- SecurityHeader.cs
- NotSupportedException.cs
- DetailsViewInsertedEventArgs.cs
- Int64Storage.cs
- InkCanvasFeedbackAdorner.cs
- Frame.cs
- OdbcUtils.cs
- BackgroundFormatInfo.cs
- GroupQuery.cs
- DoubleAnimationUsingKeyFrames.cs
- selecteditemcollection.cs
- DocumentApplicationState.cs
- DocumentScope.cs
- NativeMethods.cs
- XXXOnTypeBuilderInstantiation.cs
- InvalidCastException.cs
- FontUnitConverter.cs
- TransformGroup.cs
- SiteMapDataSourceView.cs
- AuthenticationModulesSection.cs
- ConnectivityStatus.cs
- SecUtil.cs
- SchemaImporterExtensionElement.cs
- TypeDescriptionProvider.cs
- util.cs
- DesignerForm.cs
- ProviderUtil.cs
- SqlError.cs
- TypeName.cs
- MediaCommands.cs
- ModelFunction.cs
- Command.cs
- StrokeCollection2.cs
- DetailsViewCommandEventArgs.cs
- UpDownBase.cs
- SymbolTable.cs
- MultiSelectRootGridEntry.cs
- GetChildSubtree.cs
- DataBoundLiteralControl.cs
- XPathNodeIterator.cs
- AuthenticationException.cs
- DocumentOrderComparer.cs
- SessionIDManager.cs
- RequestCachePolicy.cs
- TCEAdapterGenerator.cs
- BamlStream.cs
- WsdlBuildProvider.cs