Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / CorrelationQuery.cs / 1305376 / CorrelationQuery.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel { using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.ServiceModel.Activities; using System.ServiceModel.Channels; using System.ServiceModel.Dispatcher; using SR2 = System.ServiceModel.Activities.SR; public class CorrelationQuery { CollectionselectAdditional; public CorrelationQuery() { } [SuppressMessage(FxCop.Category.Usage, FxCop.Rule.CollectionPropertiesShouldBeReadOnly, Justification = "TODO 87762, remove the set")] [SuppressMessage(FxCop.Category.Xaml, FxCop.Rule.PropertyExternalTypesMustBeKnown, Justification = "This property is XAML friendly, no need to add KnownXamlExternal")] [DefaultValue(null)] public MessageQuerySet Select { get; set; } public Collection SelectAdditional { get { if (this.selectAdditional == null) { this.selectAdditional = new QueryCollection(); } return this.selectAdditional; } } [SuppressMessage(FxCop.Category.Xaml, FxCop.Rule.PropertyExternalTypesMustBeKnown, Justification = "This property is XAML friendly, no need to add KnownXamlExternal")] [DefaultValue(null)] public MessageFilter Where { get; set; } internal bool IsDefaultContextQuery { get; set; } public override bool Equals(object other) { if (object.ReferenceEquals(this, other)) { return true; } CorrelationQuery otherQuery = other as CorrelationQuery; if (otherQuery == null) { return false; } if (this.Where == null) { return otherQuery.Where == null; } return this.Where.Equals(otherQuery.Where); } public override int GetHashCode() { return (this.Where != null) ? this.Where.GetHashCode() : 0; } internal static bool IsQueryCollectionSearchable(IEnumerable queries) { foreach (CorrelationQuery query in queries) { if (!(query.Where is CorrelationActionMessageFilter || query.Where is ActionMessageFilter)) { return false; } } return true; } internal static CorrelationQuery FindCorrelationQueryForAction(IEnumerable queries, string action) { string localAction = action != null ? action : String.Empty; foreach (CorrelationQuery query in queries) { // if the action is wildcard, we have a match all if (query.Where is CorrelationActionMessageFilter) { if (((CorrelationActionMessageFilter)query.Where).Action == localAction || localAction == MessageHeaders.WildcardAction) { return query; } } else if (query.Where is ActionMessageFilter) { if (((ActionMessageFilter)query.Where).Actions.Contains(localAction) || localAction == MessageHeaders.WildcardAction) { return query; } } } return null; } internal CorrelationQuery Clone() { CorrelationQuery cloneQuery = new CorrelationQuery { Select = this.Select, IsDefaultContextQuery = this.IsDefaultContextQuery, Where = this.Where, }; if (this.selectAdditional != null) { foreach (MessageQuerySet messageQuerySet in this.selectAdditional) { cloneQuery.SelectAdditional.Add(messageQuerySet); } } return cloneQuery; } class QueryCollection : Collection { public QueryCollection() { } protected override void InsertItem(int index, MessageQuerySet item) { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } base.InsertItem(index, item); } protected override void SetItem(int index, MessageQuerySet item) { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } base.SetItem(index, item); } } } } // 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
- SelectionRangeConverter.cs
- MDIClient.cs
- ReadWriteObjectLock.cs
- StringCollection.cs
- CopyNodeSetAction.cs
- Formatter.cs
- DataControlReferenceCollection.cs
- PrintDialog.cs
- Math.cs
- Console.cs
- FlowDocumentPageViewerAutomationPeer.cs
- MdiWindowListItemConverter.cs
- RightsManagementEncryptionTransform.cs
- MDIControlStrip.cs
- Frame.cs
- ObjectStateFormatter.cs
- X509UI.cs
- SystemInfo.cs
- RegexRunnerFactory.cs
- DynamicPropertyReader.cs
- ModuleBuilderData.cs
- SymLanguageType.cs
- TdsParserSessionPool.cs
- _SecureChannel.cs
- Enum.cs
- ObjectContextServiceProvider.cs
- GlobalEventManager.cs
- FixedSOMFixedBlock.cs
- TailCallAnalyzer.cs
- InputLanguageSource.cs
- ChtmlTextWriter.cs
- RuleSettingsCollection.cs
- TextCompositionManager.cs
- DataRowComparer.cs
- ManagedCodeMarkers.cs
- Errors.cs
- SizeChangedInfo.cs
- AmbientValueAttribute.cs
- Int32Rect.cs
- DataGridViewTextBoxColumn.cs
- TypefaceMetricsCache.cs
- ProfileService.cs
- MsmqOutputSessionChannel.cs
- formatter.cs
- TileModeValidation.cs
- Message.cs
- ClientCredentialsSecurityTokenManager.cs
- GenericIdentity.cs
- ServiceBehaviorAttribute.cs
- PrtTicket_Public_Simple.cs
- HttpCookiesSection.cs
- OleDbCommand.cs
- NameSpaceExtractor.cs
- ReferencedCollectionType.cs
- UserControl.cs
- RemoteWebConfigurationHost.cs
- DynamicField.cs
- FontSizeConverter.cs
- MsmqInputChannelBase.cs
- MouseEventArgs.cs
- MimeBasePart.cs
- DefaultValueAttribute.cs
- remotingproxy.cs
- BindingEntityInfo.cs
- Point3DAnimationBase.cs
- PerspectiveCamera.cs
- MatrixKeyFrameCollection.cs
- LogWriteRestartAreaAsyncResult.cs
- XmlReturnWriter.cs
- Control.cs
- BlurBitmapEffect.cs
- Soap11ServerProtocol.cs
- SerializationSectionGroup.cs
- BuildProviderAppliesToAttribute.cs
- ScriptControlManager.cs
- WebHttpEndpoint.cs
- SerializerDescriptor.cs
- SqlGenerator.cs
- AssemblyContextControlItem.cs
- DataSourceControl.cs
- GridSplitter.cs
- VisualBasicExpressionConverter.cs
- DependencyPropertyAttribute.cs
- LineBreakRecord.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- HashAlgorithm.cs
- SizeF.cs
- EntityDataSourceStatementEditorForm.cs
- SQLDoubleStorage.cs
- DbConnectionHelper.cs
- TextRange.cs
- FormDocumentDesigner.cs
- UmAlQuraCalendar.cs
- _NestedSingleAsyncResult.cs
- UniqueEventHelper.cs
- ActiveDocumentEvent.cs
- SafeNativeMemoryHandle.cs
- XmlCharType.cs
- MenuCommand.cs
- Number.cs