Code:
/ 4.0 / 4.0 / 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
{
ReadOnlyCollection enabledActivities = 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.
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
{
ReadOnlyCollection enabledActivities = 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
- ContentAlignmentEditor.cs
- PoisonMessageException.cs
- FileClassifier.cs
- ValidationResults.cs
- DelegatingStream.cs
- RunClient.cs
- TableRowGroupCollection.cs
- BufferModesCollection.cs
- QueryIntervalOp.cs
- MergeFilterQuery.cs
- SystemSounds.cs
- ScriptReferenceBase.cs
- TraceHandlerErrorFormatter.cs
- InternalEnumValidator.cs
- ReadOnlyPropertyMetadata.cs
- CqlErrorHelper.cs
- ProbeRequestResponseAsyncResult.cs
- DataControlImageButton.cs
- ReadOnlyCollection.cs
- FrameworkElementFactoryMarkupObject.cs
- QuestionEventArgs.cs
- XhtmlTextWriter.cs
- SqlDataSourceConfigureSelectPanel.cs
- Identity.cs
- nulltextnavigator.cs
- WindowsListViewGroupSubsetLink.cs
- BamlBinaryReader.cs
- CatalogPart.cs
- PrintingPermissionAttribute.cs
- SoapEnumAttribute.cs
- NavigationProperty.cs
- Trustee.cs
- SettingsProperty.cs
- DependencyObjectType.cs
- Viewport3DVisual.cs
- DefaultBindingPropertyAttribute.cs
- OdbcErrorCollection.cs
- ItemsControl.cs
- ListenerElementsCollection.cs
- AnnotationComponentManager.cs
- DeadCharTextComposition.cs
- SqlInternalConnectionSmi.cs
- AccessedThroughPropertyAttribute.cs
- MSAANativeProvider.cs
- PathFigureCollection.cs
- SettingsPropertyNotFoundException.cs
- XmlFormatExtensionPointAttribute.cs
- ArraySortHelper.cs
- BamlLocalizer.cs
- BigInt.cs
- WebPartExportVerb.cs
- MSHTMLHostUtil.cs
- ZipIOExtraField.cs
- DescendantOverDescendantQuery.cs
- SiblingIterators.cs
- CodeObjectCreateExpression.cs
- ApplyTemplatesAction.cs
- HybridDictionary.cs
- SecurityCookieModeValidator.cs
- recordstatescratchpad.cs
- BitmapEffectDrawing.cs
- Overlapped.cs
- InvokeProviderWrapper.cs
- TextShapeableCharacters.cs
- MouseGesture.cs
- XmlSchemaNotation.cs
- FillBehavior.cs
- BindUriHelper.cs
- SynchronousReceiveBehavior.cs
- NameHandler.cs
- MultiSelector.cs
- PropertyTabChangedEvent.cs
- CheckoutException.cs
- TypeForwardedToAttribute.cs
- EventLogPermissionAttribute.cs
- SqlIdentifier.cs
- Cursor.cs
- CheckBoxAutomationPeer.cs
- DesignerMetadata.cs
- HostedAspNetEnvironment.cs
- DataRowChangeEvent.cs
- DecimalAnimationUsingKeyFrames.cs
- GraphicsPathIterator.cs
- SafeHandles.cs
- ScheduleChanges.cs
- ScrollEvent.cs
- ColumnTypeConverter.cs
- ProfilePropertyNameValidator.cs
- XmlSchemaInferenceException.cs
- Invariant.cs
- WebPart.cs
- AttributeEmitter.cs
- HwndSourceKeyboardInputSite.cs
- AttributeProviderAttribute.cs
- IpcClientChannel.cs
- OutputCacheModule.cs
- HeaderedItemsControl.cs
- RootNamespaceAttribute.cs
- DBConnection.cs
- RectangleConverter.cs