Another two packages
This commit is contained in:
parent
1a9befea0f
commit
1e1b978749
@ -0,0 +1,15 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using NodePipeline.Abstractions;
|
||||
using NodePipeline.Abstractions.Exceptions;
|
||||
|
||||
namespace NodePipeline.Reporting.Abstractions
|
||||
{
|
||||
public interface IPipelineRegistrationReporter
|
||||
{
|
||||
void ReportSuccess(PipelineRegistrationResult result, string pipelineId);
|
||||
Task ReportSuccessAsync(PipelineRegistrationResult result, string pipelineId, CancellationToken cancellationToken);
|
||||
void ReportFailure(PipelineValidationException exception);
|
||||
Task ReportFailureAsync(PipelineValidationException exception, CancellationToken cancellationToken);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NodePipeline.Abstractions" Version="0.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -0,0 +1,177 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using NodePipeline.Abstractions;
|
||||
using NodePipeline.Abstractions.Exceptions;
|
||||
using NodePipeline.Abstractions.Interfaces;
|
||||
using NodePipeline.Abstractions.Models.Validation;
|
||||
using NodePipeline.Reporting.Abstractions;
|
||||
|
||||
namespace NodePipeline.Reporting.Console
|
||||
{
|
||||
public class ConsolePipelineRegistrationReporter : IPipelineRegistrationReporter
|
||||
{
|
||||
|
||||
private readonly IPipelineLocalizationProvider _validationLocalizationProvider;
|
||||
|
||||
public void ReportSuccess(PipelineRegistrationResult result)
|
||||
{
|
||||
// var backgroundColor = System.Console.BackgroundColor;
|
||||
// var foregroundColor = System.Console.ForegroundColor;
|
||||
// System.Console.Write($"Pipeline ");
|
||||
// System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
// System.Console.Write($"[{pipelineId}] ");
|
||||
// System.Console.ForegroundColor = ConsoleColor.Green;
|
||||
// System.Console.WriteLine($"successfully registered");
|
||||
// System.Console.ForegroundColor = foregroundColor;
|
||||
|
||||
|
||||
var color = System.Console.ForegroundColor;
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkGray;
|
||||
var warnings = result.NodeWarnings;
|
||||
System.Console.ForegroundColor =
|
||||
result.WarningsCount == 0 ? ConsoleColor.DarkGreen : ConsoleColor.DarkYellow;
|
||||
System.Console.WriteLine(result.WarningsCount == 0
|
||||
? _validationLocalizationProvider.GetLocalizedString("PipelineRegistered", CultureInfo.CurrentCulture,
|
||||
result.PipelineId)
|
||||
: _validationLocalizationProvider.GetLocalizedString("PipelineRegisteredWithWarnings",
|
||||
CultureInfo.CurrentCulture, result.PipelineId, result.WarningsCount));
|
||||
//TODO: add messages
|
||||
//TODO: add method GetMessages to exceptions
|
||||
|
||||
if (result.WarningsCount > 0)
|
||||
{
|
||||
System.Console.WriteLine("Nodes:");
|
||||
|
||||
foreach (var nodeKvp in warnings.OrderBy(q => q.Key))
|
||||
{
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
System.Console.WriteLine($"\t[{nodeKvp.Key}]");
|
||||
System.Console.ForegroundColor = color;
|
||||
|
||||
var warningParameters = nodeKvp.Value.ParameterResults
|
||||
.Where(q => q.Value.Any(x => x.Result == ValidationResult.HasWarnings))
|
||||
.ToDictionary(q => q.Key, q => q.Value);
|
||||
var warningPorts = nodeKvp.Value.PortResults
|
||||
.Where(q => q.Value.Any(x => x.Result == ValidationResult.HasWarnings))
|
||||
.ToDictionary(q => q.Key, q => q.Value);
|
||||
|
||||
if (warningParameters.Count > 0)
|
||||
{
|
||||
System.Console.WriteLine("\t\tParameters:");
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
foreach (var parameter in warningParameters.OrderBy(q => q.Key))
|
||||
// foreach (var warning in parameter.Value.OrderBy(q => q.ErrorMessage))
|
||||
foreach (var warning in parameter.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[WARN] ", parameter.Key, ": ", warning.ErrorMessage));
|
||||
}
|
||||
|
||||
if (warningPorts.Count > 0)
|
||||
{
|
||||
System.Console.WriteLine("\t\tPorts:");
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
foreach (var parameter in warningPorts.OrderBy(q => q.Key))
|
||||
foreach (var warning in parameter.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[WARN] ", parameter.Key, ": ", warning.ErrorMessage));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.Console.ForegroundColor = color;
|
||||
}
|
||||
|
||||
public async Task ReportSuccessAsync(PipelineRegistrationResult result, CancellationToken cancellationToken)
|
||||
{
|
||||
ReportSuccess(result);
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
public void ReportFailure(PipelineValidationException exception)
|
||||
{
|
||||
var color = System.Console.ForegroundColor;
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkGray;
|
||||
System.Console.WriteLine(_validationLocalizationProvider.GetLocalizedString(exception.Message, CultureInfo.CurrentCulture,
|
||||
exception.PipelineId, exception.RegistrationResult.ErrorsCount, exception.RegistrationResult.WarningsCount));
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
System.Console.Write($"Warnings: [{exception.RegistrationResult.WarningsCount}] | ");
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkRed;
|
||||
System.Console.WriteLine($"Errors: [{exception.RegistrationResult.ErrorsCount}]");
|
||||
System.Console.ForegroundColor = color;
|
||||
System.Console.WriteLine(new string('-', 30));
|
||||
System.Console.WriteLine("Nodes:");
|
||||
|
||||
foreach (var nodeKvp in exception.RegistrationResult.GetNotValidNodes().OrderBy(q => q.Key))
|
||||
{
|
||||
System.Console.ForegroundColor = nodeKvp.Value.Result == ValidationResult.HasWarnings
|
||||
? ConsoleColor.DarkYellow
|
||||
: ConsoleColor.DarkRed;
|
||||
System.Console.WriteLine($"\t[{nodeKvp.Key}]");
|
||||
System.Console.ForegroundColor = color;
|
||||
|
||||
// var warningParameters = ex.WarningParameters.TryGetValue(nodeKvp.Key, out var value);
|
||||
// var errorParameters = ex.ErrorParameters.TryGetValue(nodeKvp.Key);
|
||||
// var warningPorts = ex.WarningPorts[nodeKvp.Key];
|
||||
// var errorPorts = ex.ErrorPorts[nodeKvp.Key];
|
||||
|
||||
if ((exception.RegistrationResult.WarningParameters.TryGetValue(nodeKvp.Key, out var warningParameters) &&
|
||||
warningParameters.Count > 0)
|
||||
| (exception.RegistrationResult.ErrorParameters.TryGetValue(nodeKvp.Key, out var errorParameters) &&
|
||||
errorParameters.Count > 0))
|
||||
{
|
||||
System.Console.WriteLine("\t\tParameters:");
|
||||
if (warningParameters?.Count > 0)
|
||||
{
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
foreach (var parameter in warningParameters.OrderBy(q => q.Key))
|
||||
// foreach (var warning in parameter.Value.OrderBy(q => q.ErrorMessage))
|
||||
foreach (var warning in parameter.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[WARN] ", parameter.Key, ": ", warning.ErrorMessage));
|
||||
}
|
||||
|
||||
if (errorParameters?.Count > 0)
|
||||
{
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkRed;
|
||||
foreach (var parameter in errorParameters.OrderBy(q => q.Key))
|
||||
// foreach (var error in parameter.Value.OrderBy(q => q.ErrorMessage))
|
||||
foreach (var error in parameter.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[ERRO] ", parameter.Key, ": ", error.ErrorMessage));
|
||||
}
|
||||
}
|
||||
|
||||
if ((exception.RegistrationResult.WarningPorts.TryGetValue(nodeKvp.Key, out var warningPorts) &&
|
||||
warningPorts.Count > 0)
|
||||
| (exception.RegistrationResult.ErrorPorts.TryGetValue(nodeKvp.Key, out var errorPorts) &&
|
||||
errorPorts.Count > 0))
|
||||
{
|
||||
System.Console.WriteLine("\t\tPorts:");
|
||||
if (warningPorts?.Count > 0)
|
||||
{
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkYellow;
|
||||
foreach (var port in warningPorts.OrderBy(q => q.Key))
|
||||
// foreach (var warning in parameter.Value.OrderBy(q => q.ErrorMessage))
|
||||
foreach (var warning in port.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[WARN] ", port.Key, ": ", warning.ErrorMessage));
|
||||
}
|
||||
|
||||
if (!(errorPorts?.Count > 0)) continue;
|
||||
|
||||
System.Console.ForegroundColor = ConsoleColor.DarkRed;
|
||||
foreach (var port in errorPorts.OrderBy(q => q.Key))
|
||||
// foreach (var error in parameter.Value.OrderBy(q => q.ErrorMessage))
|
||||
foreach (var error in port.Value)
|
||||
System.Console.WriteLine(string.Concat("\t\t[ERRO] ", port.Key, ": ", error.ErrorMessage));
|
||||
}
|
||||
}
|
||||
|
||||
System.Console.ForegroundColor = color;
|
||||
}
|
||||
|
||||
public async Task ReportFailureAsync(PipelineValidationException exception, CancellationToken cancellationToken)
|
||||
{
|
||||
ReportFailure(exception);
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NodePipeline.Reporting.Abstractions" Version="0.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Loading…
Reference in New Issue
Block a user