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
- EditorPart.cs
- LedgerEntryCollection.cs
- TableRowCollection.cs
- ContextConfiguration.cs
- Component.cs
- SqlDataRecord.cs
- SrgsSubset.cs
- AdornedElementPlaceholder.cs
- PrintController.cs
- GradientBrush.cs
- PhysicalOps.cs
- TimeSpan.cs
- SecureUICommand.cs
- JpegBitmapDecoder.cs
- ParameterElementCollection.cs
- EmbeddedMailObjectsCollection.cs
- TextTreeInsertElementUndoUnit.cs
- CopyOnWriteList.cs
- QilInvokeLateBound.cs
- OleCmdHelper.cs
- ObjectTokenCategory.cs
- _ContextAwareResult.cs
- SerializerWriterEventHandlers.cs
- FixedSOMElement.cs
- PropertyInformationCollection.cs
- WeakReferenceEnumerator.cs
- RbTree.cs
- EntityDesignerDataSourceView.cs
- SpellerInterop.cs
- TransactionState.cs
- Geometry3D.cs
- AsyncResult.cs
- MatchAttribute.cs
- MetaModel.cs
- ApplicationSecurityManager.cs
- TransactionFilter.cs
- ScriptingJsonSerializationSection.cs
- figurelength.cs
- FamilyMapCollection.cs
- StructureChangedEventArgs.cs
- Image.cs
- errorpatternmatcher.cs
- SqlCharStream.cs
- FixedSOMTableCell.cs
- ValidationError.cs
- ToolStripKeyboardHandlingService.cs
- QueryOutputWriter.cs
- QuarticEase.cs
- SamlAssertionKeyIdentifierClause.cs
- Margins.cs
- BoolExpression.cs
- DynamicActivityXamlReader.cs
- LocalizationCodeDomSerializer.cs
- ObjectDisposedException.cs
- FixedPageStructure.cs
- AttachInfo.cs
- DbConvert.cs
- SafeEventHandle.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ConsoleKeyInfo.cs
- URLIdentityPermission.cs
- ZipIOCentralDirectoryFileHeader.cs
- ObjectTag.cs
- StackOverflowException.cs
- UpdateCompiler.cs
- SiteMapDataSourceView.cs
- CodeMemberMethod.cs
- HandleCollector.cs
- NativeMethods.cs
- ArcSegment.cs
- ISAPIWorkerRequest.cs
- ParseElement.cs
- DrawingContextWalker.cs
- SequentialActivityDesigner.cs
- ResourceProviderFactory.cs
- CompositeControl.cs
- ContactManager.cs
- SafeNativeMethods.cs
- CompositeFontInfo.cs
- ChtmlSelectionListAdapter.cs
- FileLogRecordEnumerator.cs
- UniqueEventHelper.cs
- StrongName.cs
- SoapRpcMethodAttribute.cs
- SymmetricSecurityProtocolFactory.cs
- SQLSingle.cs
- PreProcessor.cs
- TextEvent.cs
- WebConfigurationManager.cs
- SatelliteContractVersionAttribute.cs
- BitmapSourceSafeMILHandle.cs
- StickyNote.cs
- KernelTypeValidation.cs
- ImageIndexEditor.cs
- Image.cs
- HandlerWithFactory.cs
- ApplicationManager.cs
- NotCondition.cs
- COM2PropertyDescriptor.cs
- BitArray.cs