//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Activities.Tracking.Configuration { using System.Configuration; using System.Runtime; using System.Activities.Tracking; using System.Diagnostics.CodeAnalysis; [Fx.Tag.XamlVisible(false)] public class CustomTrackingQueryElement : TrackingQueryElement { ConfigurationPropertyCollection properties; protected override ConfigurationPropertyCollection Properties { get { if (this.properties == null) { ConfigurationPropertyCollection properties = base.Properties; properties.Add(new ConfigurationProperty(TrackingConfigurationStrings.Name, typeof(System.String), "*", null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey)); properties.Add(new ConfigurationProperty(TrackingConfigurationStrings.ActivityName, typeof(System.String), "*", null, new System.Configuration.StringValidator(1, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey)); this.properties = properties; } return this.properties; } } [ConfigurationProperty(TrackingConfigurationStrings.Name, IsKey = true, DefaultValue = TrackingConfigurationStrings.StarWildcard)] [StringValidator(MinLength = 0)] [SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationValidatorAttributeRule, MessageId = "System.ServiceModel.Activities.Tracking.Configuration.UserTrackingQueryElement.Name", Justification = "StringValidator verifies minimum size")] public string Name { get { return (string)base[TrackingConfigurationStrings.Name]; } set { base[TrackingConfigurationStrings.Name] = value; } } [ConfigurationProperty(TrackingConfigurationStrings.ActivityName, IsKey = true, DefaultValue = TrackingConfigurationStrings.StarWildcard)] [StringValidator(MinLength = 1)] [SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationValidatorAttributeRule, MessageId = "System.ServiceModel.Activities.Tracking.Configuration.UserTrackingQueryElement.ActivityName", Justification = "StringValidator verifies minimum size")] public string ActivityName { get { return (string)base[TrackingConfigurationStrings.ActivityName]; } set { base[TrackingConfigurationStrings.ActivityName] = value; } } protected override TrackingQuery NewTrackingQuery() { return new CustomTrackingQuery { Name = this.Name, ActivityName = this.ActivityName }; } } }