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
- SelectionProcessor.cs
- WebControlToolBoxItem.cs
- Queue.cs
- SQLByteStorage.cs
- WindowsListViewGroupHelper.cs
- XsdDateTime.cs
- ControlCollection.cs
- DBDataPermissionAttribute.cs
- mediapermission.cs
- WebConfigurationFileMap.cs
- ControlPaint.cs
- ActionFrame.cs
- URLBuilder.cs
- StringToken.cs
- Facet.cs
- X509ChainPolicy.cs
- WebBrowserDocumentCompletedEventHandler.cs
- FixedSOMSemanticBox.cs
- DataGridItem.cs
- SmiMetaData.cs
- LeftCellWrapper.cs
- Brush.cs
- CultureTableRecord.cs
- UInt64Converter.cs
- PassportAuthenticationModule.cs
- DataGridViewSelectedCellCollection.cs
- EventLogEntryCollection.cs
- ControlType.cs
- OdbcError.cs
- CodeArgumentReferenceExpression.cs
- ExceptionUtility.cs
- Pens.cs
- AnnotationResource.cs
- SystemPens.cs
- QueryExpr.cs
- SqlInfoMessageEvent.cs
- Timer.cs
- sqlstateclientmanager.cs
- ValueProviderWrapper.cs
- GenericArgumentsUpdater.cs
- Timer.cs
- ProfileModule.cs
- XmlSchemaImporter.cs
- XmlLoader.cs
- RuntimeEnvironment.cs
- CaseInsensitiveComparer.cs
- HtmlTableRow.cs
- ProcessHostConfigUtils.cs
- SQLConvert.cs
- ArrayElementGridEntry.cs
- TextOutput.cs
- WebPartConnectionsCloseVerb.cs
- ProxyWebPartManager.cs
- StateManagedCollection.cs
- XmlNamespaceMappingCollection.cs
- PasswordValidationException.cs
- GeometryHitTestResult.cs
- TypeName.cs
- ProfileBuildProvider.cs
- Container.cs
- NamespaceEmitter.cs
- WebPartTransformerAttribute.cs
- KoreanLunisolarCalendar.cs
- RSAPKCS1KeyExchangeFormatter.cs
- BridgeDataReader.cs
- Int32RectConverter.cs
- Formatter.cs
- MSG.cs
- ProcessModelInfo.cs
- Task.cs
- SplitterDesigner.cs
- XmlText.cs
- DownloadProgressEventArgs.cs
- FlowLayoutSettings.cs
- CompiledIdentityConstraint.cs
- RuleEngine.cs
- LogEntrySerializationException.cs
- ReferenceConverter.cs
- SystemColors.cs
- DelegatingTypeDescriptionProvider.cs
- PlanCompiler.cs
- RightsManagementPermission.cs
- WorkflowEventArgs.cs
- ErrorFormatterPage.cs
- AffineTransform3D.cs
- ProcessRequestArgs.cs
- X509ChainPolicy.cs
- SecurityException.cs
- Reference.cs
- AdapterUtil.cs
- FrameworkContentElement.cs
- XmlElementAttributes.cs
- FixedSOMLineRanges.cs
- IdentityReference.cs
- Normalization.cs
- FixedTextBuilder.cs
- HostVisual.cs
- figurelength.cs
- ProcessInputEventArgs.cs
- DataFieldCollectionEditor.cs