Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Presentation / ActivityDesignerHelper.cs / 1305376 / ActivityDesignerHelper.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.ComponentModel; using System.Activities.Statements; using System.Activities.Presentation.Metadata; using System.Activities.Presentation.Model; using System.Activities.Presentation.View; using System.Activities.Core.Presentation.Themes; using System.Linq; using System.Activities.Core.Presentation; using System.Diagnostics.CodeAnalysis; using System.ServiceModel.Activities; using System.Windows; using System.Runtime; using System.Globalization; static class ActivityDesignerHelper { public const string ChannelBasedCorrelationKey = "ChannelBasedCorrelation"; [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Justification = "This is a TryGet pattern that requires out parameters")] public static bool IsItemInSequence(this ModelItem item, out ModelItem sequence) { if (null == item) { throw FxTrace.Exception.AsError(new ArgumentNullException("item")); } bool result = false; int level = 0; FuncisInSequencePredicate = (p) => { switch (level) { case 0: ++level; return (p is ModelItemCollection); case 1: ++level; result = typeof(Sequence).IsAssignableFrom(p.ItemType); return result; default: return false; }; }; ModelItem container = item.GetParentEnumerator(isInSequencePredicate).LastOrDefault(); sequence = result ? container : null; return result; } [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", Justification = "This is a TryGet pattern that requires out parameters")] public static bool IsItemInFlowchart(this ModelItem item, out ModelItem flowchart, out ModelItem flowStep) { if (null == item) { throw FxTrace.Exception.AsError(new ArgumentNullException("item")); } bool result = false; int level = 0; ModelItem flowStepContainer = null; flowchart = null; flowStep = null; Func isInFlowchartPredicate = (p) => { switch (level) { case 0: ++level; flowStepContainer = typeof(FlowStep).IsAssignableFrom(p.ItemType) ? p : null; return null != flowStepContainer; case 1: ++level; return (p is ModelItemCollection); case 2: ++level; result = (typeof(Flowchart).IsAssignableFrom(p.ItemType)); return result; default: return false; } }; ModelItem container = item.GetParentEnumerator(isInFlowchartPredicate).LastOrDefault(); if (result) { flowchart = container; flowStep = flowStepContainer; } return result; } public static bool IsMessagingActivity( this ModelItem item) { if (null == item) { throw FxTrace.Exception.ArgumentNull("item"); } bool result = item.IsAssignableFrom () || item.IsAssignableFrom () || item.IsAssignableFrom () || item.IsAssignableFrom (); return result; } public static string GenerateUniqueVariableNameForContext(DependencyObject context, string prefix) { if (null == context) { throw FxTrace.Exception.ArgumentNull("context"); } var viewElement = context as WorkflowViewElement; if (null == viewElement) { var msg = StringResourceDictionary.Instance.GetString("activityFactoryWrongTarget"); throw FxTrace.Exception.Argument("target", msg); } string name; var scope = VariableHelper.FindCommonVariableScope(viewElement.ModelItem, viewElement.ModelItem); if (null == scope) { name = string.Format(CultureInfo.CurrentUICulture, "{0}{1}", prefix, 1); } else { name = scope.GetVariableCollection().CreateUniqueVariableName(prefix, 1); } return name; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectParameter.cs
- safemediahandle.cs
- DateTimeOffsetStorage.cs
- ControlCodeDomSerializer.cs
- PerspectiveCamera.cs
- EdmProperty.cs
- PointCollection.cs
- MethodImplAttribute.cs
- DocumentViewerAutomationPeer.cs
- WebBrowser.cs
- XMLDiffLoader.cs
- HostedTransportConfigurationManager.cs
- ToolZone.cs
- Clause.cs
- HtmlMeta.cs
- BitmapVisualManager.cs
- OutOfMemoryException.cs
- BitSet.cs
- XmlAttributeCache.cs
- IgnoreDataMemberAttribute.cs
- StructuredTypeEmitter.cs
- Point3DIndependentAnimationStorage.cs
- WorkflowViewElement.cs
- XmlSchemaAppInfo.cs
- FirstMatchCodeGroup.cs
- DataServiceClientException.cs
- MenuAutomationPeer.cs
- ScriptRegistrationManager.cs
- ProjectionPruner.cs
- AuthenticatedStream.cs
- ParameterModifier.cs
- BulletedListEventArgs.cs
- SessionIDManager.cs
- DataGridViewButtonColumn.cs
- ScriptDescriptor.cs
- DocumentCollection.cs
- BaseAppDomainProtocolHandler.cs
- Line.cs
- ModelItemImpl.cs
- Crypto.cs
- Pen.cs
- DetailsViewUpdatedEventArgs.cs
- AttributeEmitter.cs
- EntityContainerRelationshipSet.cs
- ChangeDirector.cs
- BaseValidator.cs
- ping.cs
- TemplateApplicationHelper.cs
- DataGridViewRowConverter.cs
- StrokeCollection2.cs
- NullRuntimeConfig.cs
- ITreeGenerator.cs
- StringFunctions.cs
- HyperLinkField.cs
- OleStrCAMarshaler.cs
- OdbcReferenceCollection.cs
- XmlReflectionMember.cs
- InputProviderSite.cs
- RuntimeHelpers.cs
- BrushMappingModeValidation.cs
- HttpResponseHeader.cs
- HttpServerVarsCollection.cs
- RequestCachingSection.cs
- MSAAWinEventWrap.cs
- HeaderedItemsControl.cs
- InstanceDataCollectionCollection.cs
- ConfigurationManager.cs
- SafeLibraryHandle.cs
- MarkupExtensionParser.cs
- TreeNodeEventArgs.cs
- XsltContext.cs
- RequiredAttributeAttribute.cs
- RegistrationServices.cs
- LogArchiveSnapshot.cs
- SaveFileDialog.cs
- ColorMap.cs
- FactoryMaker.cs
- PreviewPageInfo.cs
- _AutoWebProxyScriptEngine.cs
- OleDbError.cs
- baseaxisquery.cs
- DES.cs
- Walker.cs
- InvariantComparer.cs
- Int16AnimationUsingKeyFrames.cs
- RayMeshGeometry3DHitTestResult.cs
- TextEditorCopyPaste.cs
- DisplayNameAttribute.cs
- PageContent.cs
- TransformerInfoCollection.cs
- IPEndPoint.cs
- ScrollItemPatternIdentifiers.cs
- ToolstripProfessionalRenderer.cs
- MsmqTransportElement.cs
- HostExecutionContextManager.cs
- formatstringdialog.cs
- XmlSerializerAssemblyAttribute.cs
- XmlTextEncoder.cs
- ColumnHeaderConverter.cs
- TextDecorationCollection.cs