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
- ListBoxChrome.cs
- MemberInfoSerializationHolder.cs
- CheckBoxFlatAdapter.cs
- WrapPanel.cs
- FormatterConverter.cs
- HtmlInputCheckBox.cs
- PtsHelper.cs
- TimeSpan.cs
- FilterElement.cs
- KernelTypeValidation.cs
- SmiEventSink_Default.cs
- CompilationUnit.cs
- NotSupportedException.cs
- OrderedHashRepartitionStream.cs
- LoadedOrUnloadedOperation.cs
- SystemWebSectionGroup.cs
- CharacterString.cs
- XmlSchemaAnnotated.cs
- SamlAudienceRestrictionCondition.cs
- _ConnectOverlappedAsyncResult.cs
- XmlMemberMapping.cs
- WindowClosedEventArgs.cs
- ProfileSettingsCollection.cs
- ToolStripPanelDesigner.cs
- FileDialog.cs
- ManagedFilter.cs
- HttpListenerElement.cs
- SapiRecoInterop.cs
- XPathNodeInfoAtom.cs
- HttpRequestBase.cs
- XhtmlBasicControlAdapter.cs
- oledbmetadatacollectionnames.cs
- FixedHighlight.cs
- HuffmanTree.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- SourceLineInfo.cs
- FormViewUpdateEventArgs.cs
- AssertSection.cs
- CustomAttributeFormatException.cs
- DataGridViewTopLeftHeaderCell.cs
- EtwTrace.cs
- AbandonedMutexException.cs
- DrawingServices.cs
- Timer.cs
- XamlDesignerSerializationManager.cs
- CustomError.cs
- NeutralResourcesLanguageAttribute.cs
- FontStretch.cs
- SoapClientMessage.cs
- DetailsViewCommandEventArgs.cs
- Exceptions.cs
- TreeNode.cs
- EntityContainerEmitter.cs
- _LazyAsyncResult.cs
- DataGridViewSelectedCellCollection.cs
- ProviderCollection.cs
- ItemCollection.cs
- StringUtil.cs
- UIElementIsland.cs
- InfoCardCryptoHelper.cs
- SessionPageStateSection.cs
- IISMapPath.cs
- EventManager.cs
- SpecialNameAttribute.cs
- keycontainerpermission.cs
- ToolStripArrowRenderEventArgs.cs
- HashSetDebugView.cs
- ToggleButton.cs
- ClipboardProcessor.cs
- Int32Animation.cs
- CharacterString.cs
- TextSegment.cs
- FrameworkReadOnlyPropertyMetadata.cs
- DataControlButton.cs
- EditCommandColumn.cs
- BamlLocalizer.cs
- DoubleStorage.cs
- DataControlCommands.cs
- GenericEnumerator.cs
- ConnectionInterfaceCollection.cs
- ParallelTimeline.cs
- UInt32.cs
- ImpersonationContext.cs
- WebPartConnectionCollection.cs
- ExceptionDetail.cs
- TreeNodeBinding.cs
- SignatureDescription.cs
- DependsOnAttribute.cs
- Rect.cs
- BlurEffect.cs
- DeviceSpecific.cs
- PatternMatcher.cs
- UpdatePanel.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- TransformCollection.cs
- GradientStop.cs
- IndentedWriter.cs
- MimeTypeAttribute.cs
- BamlTreeUpdater.cs