Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / StateInitialization.cs / 1305376 / StateInitialization.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.Workflow.Activities.Common;
#endregion
[SRDescription(SR.StateInitializationActivityDescription)]
[Designer(typeof(StateInitializationDesigner), typeof(IDesigner))]
[ToolboxItem(typeof(ActivityToolboxItem))]
[ToolboxBitmap(typeof(StateInitializationActivity), "Resources.StateInitializationActivity.png")]
[ActivityValidator(typeof(StateInitializationValidator))]
[SRCategory(SR.Standard)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class StateInitializationActivity : SequenceActivity
{
public StateInitializationActivity()
{
}
public StateInitializationActivity(string name)
: base(name)
{
}
}
[System.Runtime.InteropServices.ComVisible(false)]
internal sealed class StateInitializationValidator : CompositeActivityValidator
{
public override ValidationErrorCollection Validate(ValidationManager manager, object obj)
{
ValidationErrorCollection validationErrors = base.Validate(manager, obj);
StateInitializationActivity stateInitialization = obj as StateInitializationActivity;
if (stateInitialization == null)
throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(StateInitializationActivity).FullName), "obj");
StateActivity state = stateInitialization.Parent as StateActivity;
if (state == null)
{
validationErrors.Add(new ValidationError(SR.GetError_StateInitializationParentNotState(), ErrorNumbers.Error_StateHandlerParentNotState));
return validationErrors;
}
foreach (Activity activity in state.EnabledActivities)
{
StateInitializationActivity childStateInitialization = activity as StateInitializationActivity;
if (childStateInitialization != null)
{
if (childStateInitialization == stateInitialization)
continue;
validationErrors.Add(new ValidationError(
SR.GetError_MultipleStateInitializationActivities(), ErrorNumbers.Error_MultipleStateInitializationActivities));
break;
}
}
ValidateSetStateInsideStateInitialization(stateInitialization, state, validationErrors);
if (StateMachineHelpers.ContainsEventActivity(stateInitialization))
{
validationErrors.Add(new ValidationError(SR.GetError_EventActivityNotValidInStateInitialization(), ErrorNumbers.Error_EventActivityNotValidInStateHandler));
}
return validationErrors;
}
private void ValidateSetStateInsideStateInitialization(StateInitializationActivity stateInitialization, StateActivity state, ValidationErrorCollection validationErrors)
{
ValidateSetStateInsideStateInitializationCore(stateInitialization, state, validationErrors);
}
private void ValidateSetStateInsideStateInitializationCore(CompositeActivity compositeActivity, StateActivity state, ValidationErrorCollection validationErrors)
{
foreach (Activity activity in compositeActivity.EnabledActivities)
{
CompositeActivity childCompositeActivity = activity as CompositeActivity;
if (childCompositeActivity != null)
{
ValidateSetStateInsideStateInitializationCore(childCompositeActivity, state, validationErrors);
}
else
{
SetStateActivity setState = activity as SetStateActivity;
if (setState != null)
{
if (!String.IsNullOrEmpty(setState.TargetStateName))
{
if (setState.TargetStateName.Equals(state.QualifiedName))
{
validationErrors.Add(new ValidationError(
SR.GetError_InvalidTargetStateInStateInitialization(), ErrorNumbers.Error_InvalidTargetStateInStateInitialization));
return;
}
}
}
}
}
}
}
}
// 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
- DebuggerService.cs
- EventInfo.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SystemDiagnosticsSection.cs
- TableItemPatternIdentifiers.cs
- HyperLink.cs
- Vector3DAnimation.cs
- EdmEntityTypeAttribute.cs
- DecoderReplacementFallback.cs
- BuildProviderAppliesToAttribute.cs
- _AutoWebProxyScriptEngine.cs
- RecordManager.cs
- ColumnHeader.cs
- AuthenticateEventArgs.cs
- safex509handles.cs
- Base64Encoder.cs
- CheckBox.cs
- EditBehavior.cs
- Utils.cs
- DataGridItemCollection.cs
- ValidationHelper.cs
- InvokeAction.cs
- VisualBrush.cs
- AstTree.cs
- Operator.cs
- MaterialGroup.cs
- NameScopePropertyAttribute.cs
- XmlElementAttribute.cs
- ResponseBodyWriter.cs
- StringComparer.cs
- SystemIdentity.cs
- CacheEntry.cs
- ChangeConflicts.cs
- XmlSchemaValidationException.cs
- SqlProcedureAttribute.cs
- XmlQueryContext.cs
- EdmToObjectNamespaceMap.cs
- CompiledQuery.cs
- SystemFonts.cs
- SymbolMethod.cs
- DataControlHelper.cs
- MetadataElement.cs
- AppDomainResourcePerfCounters.cs
- DataGridViewRowConverter.cs
- UseManagedPresentationBindingElementImporter.cs
- SupportsEventValidationAttribute.cs
- TextEditorThreadLocalStore.cs
- DoubleAverageAggregationOperator.cs
- BoundConstants.cs
- Version.cs
- ReliabilityContractAttribute.cs
- figurelength.cs
- RegexFCD.cs
- TreeViewHitTestInfo.cs
- PrePostDescendentsWalker.cs
- CachedPathData.cs
- IEnumerable.cs
- XmlElementAttribute.cs
- GridViewHeaderRowPresenter.cs
- XmlStringTable.cs
- JsonEnumDataContract.cs
- TreeView.cs
- GACIdentityPermission.cs
- JsonFormatReaderGenerator.cs
- TabRenderer.cs
- XmlSerializationWriter.cs
- _ProxyRegBlob.cs
- MemberInfoSerializationHolder.cs
- CacheVirtualItemsEvent.cs
- Behavior.cs
- XmlSiteMapProvider.cs
- SqlTriggerAttribute.cs
- RegexRunner.cs
- RIPEMD160.cs
- ParserContext.cs
- BitmapEffectGroup.cs
- CriticalFinalizerObject.cs
- WpfSharedXamlSchemaContext.cs
- OracleSqlParser.cs
- TargetParameterCountException.cs
- RegexCompilationInfo.cs
- EventSchemaTraceListener.cs
- VirtualPath.cs
- OutOfProcStateClientManager.cs
- DataGridColumn.cs
- BooleanProjectedSlot.cs
- Math.cs
- ToolStripDropDownClosingEventArgs.cs
- KnownBoxes.cs
- FilterElement.cs
- ResourceReferenceExpression.cs
- SettingsPropertyValue.cs
- ValidatorCollection.cs
- ScriptRef.cs
- BaseTreeIterator.cs
- LinkArea.cs
- LicenseProviderAttribute.cs
- HttpResponse.cs
- PopOutPanel.cs
- WorkflowInstanceExtensionProvider.cs