Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / Activities / Tracking / DefaultProfileManager.cs / 1305376 / DefaultProfileManager.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Activities.Tracking { using System.Runtime.Remoting.Messaging; using System.Runtime; using System.Activities.Tracking; using System.Collections.Specialized; using System.Collections.ObjectModel; using System.Configuration; using System.ServiceModel.Configuration; using System.ServiceModel.Activities.Tracking.Configuration; class DefaultProfileManager : TrackingProfileManager { ConfigFileProfileStore profileStore; public DefaultProfileManager() { } ConfigFileProfileStore ProfileStore { get { if (this.profileStore == null) { this.profileStore = new ConfigFileProfileStore(); } return this.profileStore; } } public override TrackingProfile Load(string profileName, string activityDefinitionId, TimeSpan timeout) { if (profileName == null) { throw FxTrace.Exception.ArgumentNull("profileName"); } return this.GetProfile(profileName, activityDefinitionId); } internal TrackingProfile GetProfile(string profileName, string activityDefinitionId) { // Get all profiles from the store Collectionprofiles = this.ProfileStore.ReadProfiles(); TrackingProfile bestMatch = null; if (profiles != null) { // Go through all the profiles in the data store and find a match to the requested profile foreach (TrackingProfile profile in profiles) { // Check the profile matches the requested name, and scope type if (string.Compare(profileName, profile.Name, StringComparison.OrdinalIgnoreCase) == 0) { // If we find a global scope profile, use it as the default profile if (string.Compare("*", profile.ActivityDefinitionId, StringComparison.OrdinalIgnoreCase) == 0) { if (bestMatch == null) { bestMatch = profile; } } else if (string.Compare(activityDefinitionId, profile.ActivityDefinitionId, StringComparison.OrdinalIgnoreCase) == 0) { //specific profile for scopetarget found. bestMatch = profile; break; } } } } if (bestMatch == null) { //Add a trace message indicating tracking profile with activity definiton id is not found if (TD.TrackingProfileNotFoundIsEnabled()) { TD.TrackingProfileNotFound(profileName, activityDefinitionId); } //If the profile is not found in config, return an empty profile to suppress //events. If .config does not have profiles, return null. bestMatch = new TrackingProfile() { ActivityDefinitionId = activityDefinitionId }; } return bestMatch; } class ConfigFileProfileStore { Collection trackingProfiles; public Collection ReadProfiles() { if (this.trackingProfiles != null) { return this.trackingProfiles; } TrackingSection trackingSection = null; try { trackingSection = (TrackingSection)ConfigurationHelpers.GetSection(ConfigurationHelpers.GetSectionPath(TrackingConfigurationStrings.Tracking)); } catch (ConfigurationErrorsException e) { if (!Fx.IsFatal(e)) { FxTrace.Exception.TraceUnhandledException(e); } throw; } if (trackingSection == null) { return null; } // Configuration elements are never null, collections are empty // and single elements are constructed with the property IsPresent=false this.trackingProfiles = new Collection (); foreach (ProfileElement profileElement in trackingSection.Profiles) { if (profileElement.Workflows != null) { foreach (ProfileWorkflowElement workflowElement in profileElement.Workflows) { TrackingProfile profile = new TrackingProfile() { Name = profileElement.Name, ImplementationVisibility = profileElement.ImplementationVisibility, ActivityDefinitionId = workflowElement.ActivityDefinitionId }; workflowElement.AddQueries(profile.Queries); this.trackingProfiles.Add(profile); } } } return this.trackingProfiles; } } } } // 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
- DurableDispatcherAddressingFault.cs
- BufferedReadStream.cs
- StreamInfo.cs
- NativeStructs.cs
- ExecutionEngineException.cs
- PropertyPathWorker.cs
- FreezableDefaultValueFactory.cs
- SoapFaultCodes.cs
- SourceCollection.cs
- XhtmlBasicPhoneCallAdapter.cs
- ObjectDataSource.cs
- WebBrowserContainer.cs
- DirectoryNotFoundException.cs
- IgnoreFlushAndCloseStream.cs
- Expression.cs
- EntryPointNotFoundException.cs
- ObjectReaderCompiler.cs
- DoubleCollectionValueSerializer.cs
- HttpFileCollection.cs
- Point3DCollection.cs
- FrugalMap.cs
- RelationalExpressions.cs
- UnmanagedMarshal.cs
- LocatorPart.cs
- WebEventTraceProvider.cs
- DataGridViewMethods.cs
- Misc.cs
- Light.cs
- COM2ExtendedUITypeEditor.cs
- CheckBoxList.cs
- AnnotationResourceChangedEventArgs.cs
- DoubleLink.cs
- RectangleHotSpot.cs
- TextParagraphView.cs
- Effect.cs
- CacheDependency.cs
- SQLString.cs
- BitmapEffectDrawingContextWalker.cs
- ByteRangeDownloader.cs
- BreakRecordTable.cs
- ConnectionManagementElement.cs
- HttpListener.cs
- MutexSecurity.cs
- HealthMonitoringSectionHelper.cs
- ClientConfigPaths.cs
- EventLogPermission.cs
- Int32Converter.cs
- XmlNodeChangedEventArgs.cs
- UdpDiscoveryEndpoint.cs
- HashMembershipCondition.cs
- TreeViewItem.cs
- PageParser.cs
- TypeLoadException.cs
- Executor.cs
- DataGridLinkButton.cs
- CodeTypeConstructor.cs
- EntityContainerAssociationSetEnd.cs
- ZipIOCentralDirectoryFileHeader.cs
- DispatcherExceptionFilterEventArgs.cs
- ResourceType.cs
- OracleFactory.cs
- QilName.cs
- FormsAuthentication.cs
- MemberListBinding.cs
- ReflectionServiceProvider.cs
- MergeLocalizationDirectives.cs
- XmlElementAttribute.cs
- AppLevelCompilationSectionCache.cs
- IndexedGlyphRun.cs
- TableLayoutRowStyleCollection.cs
- Substitution.cs
- XsltQilFactory.cs
- DbConnectionOptions.cs
- NullableDecimalAverageAggregationOperator.cs
- ScriptReferenceEventArgs.cs
- HyperLinkDataBindingHandler.cs
- XPathNavigatorReader.cs
- SchemaType.cs
- WorkflowExecutor.cs
- ProofTokenCryptoHandle.cs
- XmlnsPrefixAttribute.cs
- Int64KeyFrameCollection.cs
- QueryCreatedEventArgs.cs
- ServiceContractViewControl.Designer.cs
- XmlSerializationGeneratedCode.cs
- TextEditorSelection.cs
- FixedBufferAttribute.cs
- FixedSOMSemanticBox.cs
- ValidationErrorEventArgs.cs
- RawStylusSystemGestureInputReport.cs
- Matrix.cs
- WinFormsComponentEditor.cs
- Condition.cs
- ExceptionUtil.cs
- DecimalAnimationBase.cs
- XmlCodeExporter.cs
- SpecialNameAttribute.cs
- MeasureItemEvent.cs
- OperationAbortedException.cs
- ControlDesigner.cs