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
- httpserverutility.cs
- IconHelper.cs
- DrawingBrush.cs
- RepeaterCommandEventArgs.cs
- SqlDataRecord.cs
- HandlerMappingMemo.cs
- GorillaCodec.cs
- SessionStateModule.cs
- ValidationError.cs
- StorageInfo.cs
- EntityUtil.cs
- SynchronizationValidator.cs
- URL.cs
- SystemColors.cs
- MenuItemStyleCollection.cs
- WebPartZoneAutoFormat.cs
- SqlTransaction.cs
- ReadOnlyDictionary.cs
- CacheMemory.cs
- ConfigsHelper.cs
- DispatcherExceptionFilterEventArgs.cs
- RotationValidation.cs
- CodeEventReferenceExpression.cs
- ElementFactory.cs
- AuthorizationSection.cs
- XmlName.cs
- DebuggerService.cs
- xmlsaver.cs
- EntitySetDataBindingList.cs
- SharedUtils.cs
- ToolStripComboBox.cs
- DataGridItem.cs
- BaseInfoTable.cs
- ProviderCommandInfoUtils.cs
- XmlSchemaImporter.cs
- MetadataCache.cs
- EditorPartChrome.cs
- ImpersonateTokenRef.cs
- SyndicationDeserializer.cs
- ButtonFlatAdapter.cs
- ListViewDataItem.cs
- LongCountAggregationOperator.cs
- IntegerValidatorAttribute.cs
- CompilerState.cs
- XmlSchemaIdentityConstraint.cs
- MissingMethodException.cs
- KeysConverter.cs
- SessionIDManager.cs
- SqlDataSourceFilteringEventArgs.cs
- NameValueCollection.cs
- ClientSponsor.cs
- PropertyCollection.cs
- AstNode.cs
- ProxyWebPartConnectionCollection.cs
- BlockCollection.cs
- FontResourceCache.cs
- MimeWriter.cs
- FocusTracker.cs
- TextEffect.cs
- SqlException.cs
- ScriptComponentDescriptor.cs
- MethodBuilderInstantiation.cs
- PeerCollaboration.cs
- WebPartZone.cs
- TiffBitmapDecoder.cs
- Stylus.cs
- ExtendedProtectionPolicy.cs
- XmlILModule.cs
- ConfigurationSettings.cs
- PathFigure.cs
- ResourcePermissionBase.cs
- ApplicationSecurityInfo.cs
- LocatorManager.cs
- Dictionary.cs
- GZipDecoder.cs
- DataAdapter.cs
- ContentPresenter.cs
- EntityProviderServices.cs
- MethodExpr.cs
- ReplyChannel.cs
- EntityDesignerUtils.cs
- CodeArrayIndexerExpression.cs
- DesignerAutoFormatCollection.cs
- _AuthenticationState.cs
- FunctionQuery.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- ProcessThreadCollection.cs
- odbcmetadatafactory.cs
- Base64Stream.cs
- EtwTrace.cs
- TextEditor.cs
- ProgressBarBrushConverter.cs
- PackageFilter.cs
- Html32TextWriter.cs
- DataPagerFieldCollection.cs
- DynamicActivityTypeDescriptor.cs
- DesignerActionListCollection.cs
- HandlerBase.cs
- HttpProfileBase.cs
- ObjectDataSource.cs