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
- StandardToolWindows.cs
- RefreshEventArgs.cs
- DragCompletedEventArgs.cs
- ParserStreamGeometryContext.cs
- ProxyHelper.cs
- BooleanFacetDescriptionElement.cs
- LazyInitializer.cs
- TextParagraphProperties.cs
- BitmapPalette.cs
- BaseCodePageEncoding.cs
- columnmapfactory.cs
- ContainerParaClient.cs
- configsystem.cs
- Figure.cs
- TextProperties.cs
- SemanticBasicElement.cs
- EdmFunction.cs
- WorkflowExecutor.cs
- ConnectionStringSettingsCollection.cs
- ScrollViewerAutomationPeer.cs
- filewebrequest.cs
- PropertyValidationContext.cs
- Ipv6Element.cs
- QilParameter.cs
- URLIdentityPermission.cs
- TreeNodeBindingDepthConverter.cs
- ConfigurationStrings.cs
- TogglePattern.cs
- FixedBufferAttribute.cs
- RoleGroup.cs
- InputReferenceExpression.cs
- TypeExtensionConverter.cs
- JoinElimination.cs
- EmptyStringExpandableObjectConverter.cs
- Popup.cs
- DataObjectCopyingEventArgs.cs
- TriggerCollection.cs
- DataGridViewLinkColumn.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- WebPartConnectionsConfigureVerb.cs
- MailWebEventProvider.cs
- XmlCustomFormatter.cs
- OptimalBreakSession.cs
- CombinedGeometry.cs
- ExtensionWindowHeader.cs
- XPathNodePointer.cs
- RectAnimationUsingKeyFrames.cs
- TextBoxBase.cs
- FileClassifier.cs
- AutoGeneratedField.cs
- COM2ExtendedBrowsingHandler.cs
- ApplicationDirectoryMembershipCondition.cs
- DataGridViewHitTestInfo.cs
- BitConverter.cs
- MembershipValidatePasswordEventArgs.cs
- returneventsaver.cs
- MdbDataFileEditor.cs
- ImportCatalogPart.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- PointKeyFrameCollection.cs
- SystemIcmpV4Statistics.cs
- ProcessInfo.cs
- Point4DValueSerializer.cs
- Journaling.cs
- RegexWriter.cs
- WebFaultClientMessageInspector.cs
- SqlPersonalizationProvider.cs
- RichTextBox.cs
- PropertyGrid.cs
- ObjectSet.cs
- RegexGroup.cs
- Console.cs
- RegexCode.cs
- IntMinMaxAggregationOperator.cs
- NativeMethodsOther.cs
- DocumentSchemaValidator.cs
- XmlSchemaInclude.cs
- RoleBoolean.cs
- QueryComponents.cs
- EntityDataSourceContextCreatedEventArgs.cs
- ServiceOperation.cs
- PtsHelper.cs
- ListBoxAutomationPeer.cs
- QilInvokeLateBound.cs
- LineBreak.cs
- RuntimeHandles.cs
- ExpressionParser.cs
- EditingCoordinator.cs
- KeyGestureConverter.cs
- codemethodreferenceexpression.cs
- ObjectDataSourceStatusEventArgs.cs
- ProxyWebPart.cs
- XmlHierarchyData.cs
- adornercollection.cs
- PreApplicationStartMethodAttribute.cs
- HtmlDocument.cs
- StylusPointProperty.cs
- WindowsSecurityTokenAuthenticator.cs
- DefaultWorkflowLoaderService.cs
- HtmlInputSubmit.cs