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
- InternalRelationshipCollection.cs
- SchemaElementLookUpTable.cs
- SqlBulkCopyColumnMapping.cs
- AnimatedTypeHelpers.cs
- DataKey.cs
- SmiContext.cs
- ValidationErrorCollection.cs
- SrgsOneOf.cs
- ColorConvertedBitmap.cs
- RecordManager.cs
- Label.cs
- ProfileBuildProvider.cs
- _CommandStream.cs
- CompositeCollection.cs
- StreamAsIStream.cs
- TcpServerChannel.cs
- Rotation3DAnimationBase.cs
- TextReader.cs
- MetadataItem.cs
- Stylesheet.cs
- ContainerFilterService.cs
- QuaternionAnimation.cs
- PropertyDescriptors.cs
- SingleObjectCollection.cs
- ItemList.cs
- SqlDataSourceCache.cs
- ToolStripContentPanel.cs
- TraceHandler.cs
- StateRuntime.cs
- ScriptingJsonSerializationSection.cs
- RotateTransform3D.cs
- EnumConverter.cs
- UTF7Encoding.cs
- Helpers.cs
- PostBackOptions.cs
- ResourceWriter.cs
- securitycriticaldataformultiplegetandset.cs
- RawTextInputReport.cs
- StaticDataManager.cs
- ConversionHelper.cs
- UdpAnnouncementEndpoint.cs
- EmissiveMaterial.cs
- CqlParserHelpers.cs
- DataStreams.cs
- PrintSystemException.cs
- HostedTcpTransportManager.cs
- SyndicationDeserializer.cs
- ColumnPropertiesGroup.cs
- GridProviderWrapper.cs
- DispatcherSynchronizationContext.cs
- CookieParameter.cs
- FontStyleConverter.cs
- WindowsListViewItemCheckBox.cs
- WebPartConnectionsCloseVerb.cs
- SmiEventSink_Default.cs
- BufferedWebEventProvider.cs
- AppearanceEditorPart.cs
- NetPeerTcpBinding.cs
- ContextMenu.cs
- RecognizeCompletedEventArgs.cs
- EdmItemError.cs
- RelationshipType.cs
- Manipulation.cs
- TdsParserHelperClasses.cs
- IsolatedStorageFileStream.cs
- HierarchicalDataTemplate.cs
- EnumerableWrapperWeakToStrong.cs
- HighlightComponent.cs
- MultiTrigger.cs
- PropertyCollection.cs
- ValidationPropertyAttribute.cs
- EntityContainerEntitySet.cs
- OleDbFactory.cs
- StyleHelper.cs
- ClientUtils.cs
- SmtpSection.cs
- TypeConstant.cs
- CharEnumerator.cs
- ExtendedPropertyDescriptor.cs
- InstallerTypeAttribute.cs
- WsdlInspector.cs
- WindowPatternIdentifiers.cs
- TakeQueryOptionExpression.cs
- BoundingRectTracker.cs
- InnerItemCollectionView.cs
- RichTextBox.cs
- Internal.cs
- documentsequencetextcontainer.cs
- _TransmitFileOverlappedAsyncResult.cs
- TagMapCollection.cs
- Assembly.cs
- Composition.cs
- UnknownWrapper.cs
- Vector3DAnimationUsingKeyFrames.cs
- shaperfactoryquerycacheentry.cs
- SoapHeaderException.cs
- Timer.cs
- TextLineResult.cs
- MenuItem.cs
- TransactionInformation.cs