-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #34 from FRACerqueira/v2.0.0
v.2.0.0-beta2
- Loading branch information
Showing
11 changed files
with
242 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
# <img align="left" width="100" height="100" src="../images/icon.png">HealthCheckPlus API:HealthReportExtensions | ||
|
||
[![Build](https://github.com/FRACerqueira/HealthCheckPlus/workflows/Build/badge.svg)](https://github.com/FRACerqueira/HealthCheckPlus/actions/workflows/build.yml) | ||
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/FRACerqueira/HealthCheckPlus/blob/master/LICENSE) | ||
[![NuGet](https://img.shields.io/nuget/v/HealthCheckPlus)](https://www.nuget.org/packages/HealthCheckPlus/) | ||
[![Downloads](https://img.shields.io/nuget/dt/HealthCheckPlus)](https://www.nuget.org/packages/HealthCheckPlus/) | ||
|
||
[**Back to List Api**](./apis.md) | ||
|
||
# HealthReportExtensions | ||
|
||
Namespace: HealthCheckPlus | ||
|
||
The Extensions for HealthReport | ||
|
||
```csharp | ||
public static class HealthReportExtensions | ||
``` | ||
|
||
Inheritance [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) → [HealthReportExtensions](./healthcheckplus.healthreportextensions.md) | ||
## Methods | ||
|
||
### <a id="methods-statusresult"/>**StatusResult(HealthReport, Enum)** | ||
|
||
The last data for HealthCheck. | ||
|
||
```csharp | ||
public static HealthStatus StatusResult(HealthReport report, Enum keydep) | ||
``` | ||
|
||
#### Parameters | ||
|
||
`report` HealthReport<br> | ||
The . | ||
|
||
`keydep` [Enum](https://docs.microsoft.com/en-us/dotnet/api/system.enum)<br> | ||
The Enum value dependence. | ||
|
||
#### Returns | ||
|
||
HealthStatus | ||
|
||
### <a id="methods-trygetdegraded"/>**TryGetDegraded(HealthReport, ref Dictionary`2)** | ||
|
||
Try get all degraded status. | ||
|
||
```csharp | ||
public static bool TryGetDegraded(HealthReport report, ref Dictionary`2 result) | ||
``` | ||
|
||
#### Parameters | ||
|
||
`report` HealthReport<br> | ||
The . | ||
|
||
`result` [Dictionary`2&](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2&)<br> | ||
the Dictionary with all HealthCheck Result with degraded status | ||
|
||
#### Returns | ||
|
||
True if found, oyherwise false. | ||
|
||
### <a id="methods-trygethealthy"/>**TryGetHealthy(HealthReport, ref Dictionary`2)** | ||
|
||
Try get all healthy status. | ||
|
||
```csharp | ||
public static bool TryGetHealthy(HealthReport report, ref Dictionary`2 result) | ||
``` | ||
|
||
#### Parameters | ||
|
||
`report` HealthReport<br> | ||
The . | ||
|
||
`result` [Dictionary`2&](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2&)<br> | ||
the Dictionary with all HealthCheck Result with healthy status | ||
|
||
#### Returns | ||
|
||
True if found, oyherwise false. | ||
|
||
### <a id="methods-trygetnothealthy"/>**TryGetNotHealthy(HealthReport, ref Dictionary`2)** | ||
|
||
Try get all not healthy status. | ||
|
||
```csharp | ||
public static bool TryGetNotHealthy(HealthReport report, ref Dictionary`2 result) | ||
``` | ||
|
||
#### Parameters | ||
|
||
`report` HealthReport<br> | ||
The . | ||
|
||
`result` [Dictionary`2&](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2&)<br> | ||
the Dictionary with all HealthCheck Result with not healthy status | ||
|
||
#### Returns | ||
|
||
True if found, oyherwise false. | ||
|
||
### <a id="methods-trygetunhealthy"/>**TryGetUnhealthy(HealthReport, ref Dictionary`2)** | ||
|
||
Try get all unhealthy status. | ||
|
||
```csharp | ||
public static bool TryGetUnhealthy(HealthReport report, ref Dictionary`2 result) | ||
``` | ||
|
||
#### Parameters | ||
|
||
`report` HealthReport<br> | ||
The . | ||
|
||
`result` [Dictionary`2&](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2&)<br> | ||
the Dictionary with all HealthCheck Result with unhealthy status | ||
|
||
#### Returns | ||
|
||
True if found, oyherwise false. | ||
|
||
|
||
- - - | ||
[**Back to List Api**](./apis.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
// ******************************************************************************************** | ||
// MIT LICENCE | ||
// The maintenance and evolution is maintained by the HealthCheckPlus project under MIT license | ||
// ******************************************************************************************** | ||
|
||
using System.Runtime.CompilerServices; | ||
using Microsoft.Extensions.Diagnostics.HealthChecks; | ||
|
||
namespace HealthCheckPlus | ||
{ | ||
/// <summary> | ||
/// The Extensions for HealthReport | ||
/// </summary> | ||
public static class HealthReportExtensions | ||
{ | ||
/// <summary> | ||
/// The last <see cref="HealthCheckResult"/> data for HealthCheck. | ||
/// </summary> | ||
/// <param name="report">The <see cref="HealthReport"/>.</param> | ||
/// <param name="keydep"> | ||
/// The Enum value dependence. | ||
/// </param> | ||
public static HealthStatus StatusResult(this HealthReport report, Enum keydep) | ||
{ | ||
var aux = report.Entries | ||
.Where(x => x.Key == keydep.ToString()); | ||
if (!aux.Any()) | ||
{ | ||
throw new ArgumentException($"The {nameof(keydep)} must not found.", nameof(keydep)); | ||
} | ||
return aux | ||
.Select(X => X.Value.Status) | ||
.FirstOrDefault(); | ||
} | ||
|
||
/// <summary> | ||
/// Try get all not healthy status. | ||
/// </summary> | ||
/// <param name="report">The <see cref="HealthReport"/>.</param> | ||
/// <param name="result">the Dictionary with all HealthCheck Result with not healthy status</param> | ||
/// <returns>True if found, oyherwise false.</returns> | ||
public static bool TryGetNotHealthy(this HealthReport report, out Dictionary<string, HealthCheckResult> result) | ||
{ | ||
result = GetEntriesStatus(report, x => x.Status != HealthStatus.Healthy); | ||
return result.Count != 0; | ||
} | ||
|
||
/// <summary> | ||
/// Try get all healthy status. | ||
/// </summary> | ||
/// <param name="report">The <see cref="HealthReport"/>.</param> | ||
/// <param name="result">the Dictionary with all HealthCheck Result with healthy status</param> | ||
/// <returns>True if found, oyherwise false.</returns> | ||
public static bool TryGetHealthy(this HealthReport report, out Dictionary<string, HealthCheckResult> result) | ||
{ | ||
result = GetEntriesStatus(report, x => x.Status == HealthStatus.Healthy); | ||
return result.Count != 0; | ||
} | ||
|
||
/// <summary> | ||
/// Try get all degraded status. | ||
/// </summary> | ||
/// <param name="report">The <see cref="HealthReport"/>.</param> | ||
/// <param name="result">the Dictionary with all HealthCheck Result with degraded status</param> | ||
/// <returns>True if found, oyherwise false.</returns> | ||
public static bool TryGetDegraded(this HealthReport report, out Dictionary<string, HealthCheckResult> result) | ||
{ | ||
result = GetEntriesStatus(report, x => x.Status == HealthStatus.Degraded); | ||
return result.Count != 0; | ||
} | ||
|
||
/// <summary> | ||
/// Try get all unhealthy status. | ||
/// </summary> | ||
/// <param name="report">The <see cref="HealthReport"/>.</param> | ||
/// <param name="result">the Dictionary with all HealthCheck Result with unhealthy status</param> | ||
/// <returns>True if found, oyherwise false.</returns> | ||
public static bool TryGetUnhealthy(this HealthReport report, out Dictionary<string, HealthCheckResult> result) | ||
{ | ||
result = GetEntriesStatus(report,x => x.Status == HealthStatus.Unhealthy); | ||
return result.Count != 0; | ||
} | ||
|
||
private static Dictionary<string, HealthCheckResult> GetEntriesStatus(HealthReport report, Predicate<HealthReportEntry> predicate) | ||
{ | ||
Dictionary<string, HealthCheckResult> result = []; | ||
foreach (var item in report.Entries.Where(x => predicate(x.Value))) | ||
{ | ||
result.Add(item.Key, new HealthCheckResult(item.Value.Status, item.Value.Description, item.Value.Exception, item.Value.Data)); | ||
} | ||
return result; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters