diff --git a/README.md b/README.md
index 9137c6ed..a2b2c511 100644
--- a/README.md
+++ b/README.md
@@ -533,7 +533,7 @@ If all of three filters are registered:
## Built-In Feature Filters
-There a few feature filters that come with the `Microsoft.FeatureManagement` package: `PercentageFilter`, `TimeWindowFilter`, `ContextualTargetingFilter` and `TargetingFilter`. All filters, except for the `TargetingFilter`, are added automatically when feature management is registered. The `TargetingFilter` is added with the `WithTargeting` method that is detailed in the `Targeting` section below.
+There a few feature filters that come with the `Microsoft.FeatureManagement` package: `PercentageFilter`, `TimeWindowFilter`, `ContextualTargetingFilter` and `TargetingFilter`. All filters, except for the `TargetingFilter`, are added **automatically** when feature management is registered by `AddFeatureManagement` method. The `TargetingFilter` is added with the `WithTargeting` method that is detailed in the `Targeting` section below.
Each of the built-in feature filters have their own parameters. Here is the list of feature filters along with examples.
@@ -603,7 +603,7 @@ The `Recurrence` settings is made up of two parts: `Pattern` (how often the time
#### Recurrence Pattern
-There are two possible recurrence pattern types: `Daily` and `Weekly`. For example, a time window could repeat "every day", "every 3 days", "every Monday" or "on Friday per 2 weeks".
+There are two possible recurrence pattern types: `Daily` and `Weekly`. For example, a time window could repeat "every day", "every 3 days", "every Monday" or "every other Friday".
Depending on the type, certain fields of the `Pattern` are required, optional, or ignored.
diff --git a/src/Microsoft.FeatureManagement.AspNetCore/Microsoft.FeatureManagement.AspNetCore.csproj b/src/Microsoft.FeatureManagement.AspNetCore/Microsoft.FeatureManagement.AspNetCore.csproj
index aca96791..94d93f15 100644
--- a/src/Microsoft.FeatureManagement.AspNetCore/Microsoft.FeatureManagement.AspNetCore.csproj
+++ b/src/Microsoft.FeatureManagement.AspNetCore/Microsoft.FeatureManagement.AspNetCore.csproj
@@ -5,7 +5,7 @@
3
3
- 0
+ 1
@@ -21,8 +21,10 @@
Microsoft.FeatureManagement.AspNetCore provides a way to develop and expose application functionality based on features. Many applications have special requirements when a new feature is developed such as when the feature should be enabled and under what conditions. This library provides a way to define these relationships, and also integrates into common ASP.NET Core code patterns to make exposing these features possible.
Microsoft
Microsoft
- https://licenses.nuget.org/MIT
- https://github.com/Azure/AppConfiguration
+ https://github.com/microsoft/FeatureManagement-Dotnet
+ https://github.com/microsoft/FeatureManagement-Dotnet.git
+ git
+ MIT
Release notes can be found at https://aka.ms/MicrosoftFeatureManagementReleaseNotes
Microsoft FeatureManagement FeatureFlags AzureAppConfiguration aspnetcore
https://aka.ms/AzureAppConfigurationPackageIcon
diff --git a/src/Microsoft.FeatureManagement/FeatureManagementBuilder.cs b/src/Microsoft.FeatureManagement/FeatureManagementBuilder.cs
index 1d1e699b..2b2af56c 100644
--- a/src/Microsoft.FeatureManagement/FeatureManagementBuilder.cs
+++ b/src/Microsoft.FeatureManagement/FeatureManagementBuilder.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.FeatureManagement.FeatureFilters;
namespace Microsoft.FeatureManagement
{
@@ -26,6 +27,13 @@ public IFeatureManagementBuilder AddFeatureFilter() where T : IFeatureFilterM
Type implementationType = typeof(T);
+ //
+ // TimeWindowFilter will only be added through another overload of AddFeatureFilter
+ if (implementationType == typeof(TimeWindowFilter))
+ {
+ return this;
+ }
+
IEnumerable featureFilterImplementations = implementationType.GetInterfaces()
.Where(i => i == typeof(IFeatureFilter) ||
(i.IsGenericType && i.GetGenericTypeDefinition().IsAssignableFrom(typeof(IContextualFeatureFilter<>))));
diff --git a/src/Microsoft.FeatureManagement/Microsoft.FeatureManagement.csproj b/src/Microsoft.FeatureManagement/Microsoft.FeatureManagement.csproj
index 4b99efcf..528a3448 100644
--- a/src/Microsoft.FeatureManagement/Microsoft.FeatureManagement.csproj
+++ b/src/Microsoft.FeatureManagement/Microsoft.FeatureManagement.csproj
@@ -5,7 +5,7 @@
3
3
- 0
+ 1
@@ -22,8 +22,10 @@
Microsoft.FeatureManagement provides a way to develop and expose application functionality based on features. Many applications have special requirements when a new feature is developed such as when the feature should be enabled and under what conditions. This library provides a way to define these relationships, and also integrates into common .NET code patterns to make exposing these features possible.
Microsoft
Microsoft
- https://github.com/Azure/AppConfiguration
- https://licenses.nuget.org/MIT
+ https://github.com/microsoft/FeatureManagement-Dotnet
+ https://github.com/microsoft/FeatureManagement-Dotnet.git
+ git
+ MIT
Release notes can be found at https://aka.ms/MicrosoftFeatureManagementReleaseNotes
Microsoft FeatureManagement FeatureFlags AzureAppConfiguration
https://aka.ms/AzureAppConfigurationPackageIcon
diff --git a/src/Microsoft.FeatureManagement/Targeting/ContextualTargetingFilter.cs b/src/Microsoft.FeatureManagement/Targeting/ContextualTargetingFilter.cs
index 2310d380..b4b43bde 100644
--- a/src/Microsoft.FeatureManagement/Targeting/ContextualTargetingFilter.cs
+++ b/src/Microsoft.FeatureManagement/Targeting/ContextualTargetingFilter.cs
@@ -5,7 +5,6 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using System;
-using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;