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
- ReflectEventDescriptor.cs
- Vector3DKeyFrameCollection.cs
- DataControlField.cs
- CompressStream.cs
- SafeReversePInvokeHandle.cs
- AdornerLayer.cs
- DefaultEvaluationContext.cs
- Symbol.cs
- XmlSchemaSubstitutionGroup.cs
- SiteMembershipCondition.cs
- EditorZoneBase.cs
- LinkLabel.cs
- Geometry.cs
- Parameter.cs
- DeclarationUpdate.cs
- ToolStripSplitStackLayout.cs
- SHA384Managed.cs
- Freezable.cs
- EntityTransaction.cs
- FrameworkElementAutomationPeer.cs
- CachedPathData.cs
- WindowsEditBox.cs
- RoleGroup.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Monitor.cs
- MsmqInputChannelBase.cs
- TextTreeRootNode.cs
- VirtualPathExtension.cs
- CqlWriter.cs
- ControlPager.cs
- InvokeProviderWrapper.cs
- Animatable.cs
- CmsInterop.cs
- DeflateEmulationStream.cs
- Rule.cs
- Win32Interop.cs
- CategoriesDocument.cs
- MetadataHelper.cs
- InputScopeNameConverter.cs
- hwndwrapper.cs
- GC.cs
- SqlConnectionManager.cs
- HtmlControl.cs
- ProxyAttribute.cs
- SecurityElement.cs
- ControlParser.cs
- SchemaImporter.cs
- WindowsUpDown.cs
- OpenCollectionAsyncResult.cs
- GridViewColumn.cs
- TraceHandlerErrorFormatter.cs
- RequestQueryProcessor.cs
- FixedSOMElement.cs
- WebPartEditVerb.cs
- BuildDependencySet.cs
- sqlinternaltransaction.cs
- WebFaultException.cs
- ILGenerator.cs
- DataGridViewCellCancelEventArgs.cs
- LocalizationParserHooks.cs
- UserPersonalizationStateInfo.cs
- WorkflowApplicationCompletedException.cs
- ClaimTypes.cs
- SqlPersonalizationProvider.cs
- ServiceHttpModule.cs
- CodeTypeDeclarationCollection.cs
- ListBindingHelper.cs
- MarkupCompilePass2.cs
- hresults.cs
- WorkflowNamespace.cs
- SplitterCancelEvent.cs
- EntityDataSourceStatementEditor.cs
- CreateUserWizardStep.cs
- DataGridViewRowConverter.cs
- ElementAction.cs
- ThreadNeutralSemaphore.cs
- CDSCollectionETWBCLProvider.cs
- HMACSHA256.cs
- CommonDialog.cs
- BeginEvent.cs
- EnumMember.cs
- ActiveXContainer.cs
- TreeNodeStyleCollection.cs
- AssemblyAttributes.cs
- UpdateRecord.cs
- PagesSection.cs
- ValueUnavailableException.cs
- ProfessionalColorTable.cs
- ReverseComparer.cs
- OracleCommandSet.cs
- HTMLTagNameToTypeMapper.cs
- XPathNodeHelper.cs
- SpeechEvent.cs
- RTLAwareMessageBox.cs
- EntityProviderServices.cs
- StylusPointProperty.cs
- LinkDescriptor.cs
- ArglessEventHandlerProxy.cs
- ZipIOModeEnforcingStream.cs
- ActiveXSite.cs