From b0827b75b2a9dc7621e6bc0b4389add87e1bb040 Mon Sep 17 00:00:00 2001 From: Jeavon Date: Mon, 19 Jun 2017 13:03:29 +0100 Subject: [PATCH] Rename Results to GetResultsForStatus and only calculate the result set required --- .../HealthCheck/HealthCheckResults.cs | 22 ++++++++----------- .../SlackNotificationMethod.cs | 8 +++---- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web/HealthCheck/HealthCheckResults.cs b/src/Umbraco.Web/HealthCheck/HealthCheckResults.cs index 6241cdf60c..a82f9be8db 100644 --- a/src/Umbraco.Web/HealthCheck/HealthCheckResults.cs +++ b/src/Umbraco.Web/HealthCheck/HealthCheckResults.cs @@ -158,29 +158,25 @@ namespace Umbraco.Web.HealthCheck .Replace("", "*"); } - public Dictionary> Results(StatusResultType resultType) + public Dictionary> GetResultsForStatus(StatusResultType resultType) { - // a check is considered a success status if all checks are successful or info - var successResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Success) && x.Value.All(y => y.ResultType == StatusResultType.Success || y.ResultType == StatusResultType.Info)); - - // a check is considered warn status if one check is warn and all others are success or info - var warnResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Warning) && x.Value.All(y => y.ResultType == StatusResultType.Warning || y.ResultType == StatusResultType.Success || y.ResultType == StatusResultType.Info)); - - // a check is considered error status if any check is error - var errorResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Error)); - - // a check is considered info status if all checks are info - var infoResults = _results.Where(x => x.Value.All(y => y.ResultType == StatusResultType.Info)); - switch (resultType) { case StatusResultType.Success: + // a check is considered a success status if all checks are successful or info + var successResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Success) && x.Value.All(y => y.ResultType == StatusResultType.Success || y.ResultType == StatusResultType.Info)); return successResults.ToDictionary(x => x.Key, x => x.Value); case StatusResultType.Warning: + // a check is considered warn status if one check is warn and all others are success or info + var warnResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Warning) && x.Value.All(y => y.ResultType == StatusResultType.Warning || y.ResultType == StatusResultType.Success || y.ResultType == StatusResultType.Info)); return warnResults.ToDictionary(x => x.Key, x => x.Value); case StatusResultType.Error: + // a check is considered error status if any check is error + var errorResults = _results.Where(x => x.Value.Any(y => y.ResultType == StatusResultType.Error)); return errorResults.ToDictionary(x => x.Key, x => x.Value); case StatusResultType.Info: + // a check is considered info status if all checks are info + var infoResults = _results.Where(x => x.Value.All(y => y.ResultType == StatusResultType.Info)); return infoResults.ToDictionary(x => x.Key, x => x.Value); } diff --git a/src/Umbraco.Web/HealthCheck/NotificationMethods/SlackNotificationMethod.cs b/src/Umbraco.Web/HealthCheck/NotificationMethods/SlackNotificationMethod.cs index e7afd0a16c..fc43ac37b8 100644 --- a/src/Umbraco.Web/HealthCheck/NotificationMethods/SlackNotificationMethod.cs +++ b/src/Umbraco.Web/HealthCheck/NotificationMethods/SlackNotificationMethod.cs @@ -42,10 +42,10 @@ namespace Umbraco.Web.HealthCheck.NotificationMethods icon = Emoji.WhiteCheckMark; } - var successResults = results.Results(StatusResultType.Success); - var warnResults = results.Results(StatusResultType.Warning); - var errorResults = results.Results(StatusResultType.Error); - var infoResults = results.Results(StatusResultType.Info); + var successResults = results.GetResultsForStatus(StatusResultType.Success); + var warnResults = results.GetResultsForStatus(StatusResultType.Warning); + var errorResults = results.GetResultsForStatus(StatusResultType.Error); + var infoResults = results.GetResultsForStatus(StatusResultType.Info); // todo construct Slack Message using Slack Attachments