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
- COM2TypeInfoProcessor.cs
- StringAnimationBase.cs
- DPCustomTypeDescriptor.cs
- Rect3D.cs
- AxHostDesigner.cs
- SqlTransaction.cs
- VisualStyleTypesAndProperties.cs
- ToolboxSnapDragDropEventArgs.cs
- SchemaContext.cs
- RayMeshGeometry3DHitTestResult.cs
- VectorCollection.cs
- EventRoute.cs
- HtmlInputControl.cs
- SrgsSubset.cs
- DiscreteKeyFrames.cs
- DBConnection.cs
- ASCIIEncoding.cs
- GPPOINT.cs
- Table.cs
- ExpressionLink.cs
- DataObject.cs
- WeakReferenceList.cs
- NetworkStream.cs
- SelectedGridItemChangedEvent.cs
- ObjectPersistData.cs
- CustomAttributeFormatException.cs
- SchemaMerger.cs
- AdornedElementPlaceholder.cs
- EndpointIdentityExtension.cs
- BindingMemberInfo.cs
- CodeCommentStatementCollection.cs
- DataServices.cs
- _NestedMultipleAsyncResult.cs
- AdornerPresentationContext.cs
- WebBrowsableAttribute.cs
- CompareValidator.cs
- CompositeCollection.cs
- CompoundFileIOPermission.cs
- XmlTextAttribute.cs
- Reference.cs
- ReceiveActivityDesignerTheme.cs
- DoubleAnimationClockResource.cs
- ContentElement.cs
- VariableElement.cs
- BindingExpression.cs
- GraphicsPath.cs
- HttpListenerException.cs
- ApplicationGesture.cs
- GC.cs
- DropShadowBitmapEffect.cs
- HttpsHostedTransportConfiguration.cs
- DataGridViewSelectedCellCollection.cs
- MarkupWriter.cs
- SqlMethodTransformer.cs
- SuppressedPackageProperties.cs
- ImportCatalogPart.cs
- MappingMetadataHelper.cs
- DataRecordInfo.cs
- InfiniteIntConverter.cs
- SecurityTokenAttachmentMode.cs
- UInt16.cs
- odbcmetadatafactory.cs
- CodeTypeParameter.cs
- HtmlInputPassword.cs
- BooleanFacetDescriptionElement.cs
- ArraySegment.cs
- WebPartConnectionsCloseVerb.cs
- DataGridViewRowHeaderCell.cs
- objectquery_tresulttype.cs
- MenuAutomationPeer.cs
- DataServiceQueryProvider.cs
- BlurEffect.cs
- SchemaMerger.cs
- ExtensionQuery.cs
- SmtpFailedRecipientsException.cs
- KeyGesture.cs
- ListenerConfig.cs
- ResourcePool.cs
- objectresult_tresulttype.cs
- CreatingCookieEventArgs.cs
- PrintDialog.cs
- ProcessInfo.cs
- TableLayoutStyle.cs
- TemplateBamlRecordReader.cs
- MetadataSource.cs
- assemblycache.cs
- MimeBasePart.cs
- DataTableReader.cs
- XamlTreeBuilder.cs
- MiniAssembly.cs
- Localizer.cs
- SqlTriggerAttribute.cs
- ProcessInfo.cs
- AppSettingsSection.cs
- FixedSOMTextRun.cs
- loginstatus.cs
- DataViewListener.cs
- MexHttpsBindingCollectionElement.cs
- DistributedTransactionPermission.cs
- StackSpiller.Bindings.cs