Hi,
We loved the new "Health" node in Monitoring available in DW 9.9!
Is there a way for us to add custom validations to it?
Best Regards,
Nuno Aguiar
Hi,
We loved the new "Health" node in Monitoring available in DW 9.9!
Is there a way for us to add custom validations to it?
Best Regards,
Nuno Aguiar
Hi Nuno,
You can write your own Health provider - an inheritor of HealthProviderBase class
A simple example:
[AddInName("My custom health provider")]
[AddInIcon(Core.UI.Icons.KnownIcon.Calculator)]
[AddInUseParameterGrouping(true), AddInUseParameterOrdering(true)]
public class HealthProviderExample : HealthProviderBase
{
private readonly Dictionary<int, Check> CheckList = new Dictionary<int, Check> {
{ 1, new Check() { Id=1, Description = "Antispam creates hidden input fields which are filled by bots (but not users)", Name = "Antispam: Forms for Editors", CheckWhatWasRun = "/Globalsettings/System/Security/FormAntiSpam" } }
};
private static readonly Dictionary<int, Action<Check>> ChekActions = new Dictionary<int, Action<Check>> {
{ 1, (check) => ExecuteCheck(check, true, CheckState.Error)},
};
public override IEnumerable<Check> GetCheckList()
{
return CheckList.Values;
}
public override Check RunCheck(int checkId)
{
Check check = CheckList[checkId];
ChekActions[checkId].Invoke(check);
return check;
}
private static void ExecuteCheck(Check check, bool recommendedValue, CheckState severityState)
{
var actualValue = SystemConfiguration.Instance.GetBoolean(check.CheckWhatWasRun);
if (recommendedValue == actualValue)
{
check.State = CheckState.Ok;
}
else
{
check.State = severityState;
}
check.CheckWhatWasRun += $"{Environment.NewLine}Recommended value: {recommendedValue}";
check.CheckWhatWasRun += $"{Environment.NewLine}Actual value: {actualValue}";
}
}
Best regards, Vladimir
Hi Vladimir,
Thank you. This will come in handy for sure.
Nuno Aguiar
You must be logged in to post in the forum