using Zeckoxe.Core;
using Microsoft.Extensions.Configuration;
using Microsoft.FeatureManagement;
using System.Threading.Tasks;
namespace Zeckoxe.Widgets
{
[FilterAlias("EmailFilter")]
public class EmailFeatureFilter : IFeatureFilter
{
private readonly IConfiguration Configuration;
public EmailFeatureFilter(IConfiguration configuration)
{
Configuration = configuration;
}
/// <summary>
/// Allows to enable or disable email features
/// </summary>
/// <param name="context">Feature context</param>
/// <returns>True if email is configured</returns>
public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context)
{
var blogSection = Configuration.GetSection(Constants.ConfigSectionKey);
var featureSection = Configuration.GetSection("FeatureManagement");
bool isDemo;
bool.TryParse(featureSection.GetValue<string>(nameof(AppFeatureFlags.Demo)), out isDemo);
var isConfigured = blogSection != null &&
blogSection.GetValue<string>("SendGridApiKey") != "YOUR-SENDGRID-API-KEY";
return Task.FromResult(isConfigured && !isDemo);
}
}
}
2^2=2*2 = 4
1/2 + 1/2 = 1
(x+1)/(x-1)
(a + b = c) => (a = c-b)