NodePipeline/NodePipeline.Application/FileImageSourceNodeValidator.cs
2026-01-02 20:55:25 +03:00

23 lines
1.1 KiB
C#

using NodePipeline.Abstractions.Interfaces;
using NodePipeline.Abstractions.Models.Validation;
using NodePipeline.Abstractions.Validators;
namespace NodePipeline.Application;
public class FileImageSourceNodeValidator(IPipelineLocalizationProvider localizer)
: NodeValidatorBase(localizer)
{
public override NodeValidationResult Validate(Dictionary<string, object> nodeFields,
IReadOnlyDictionary<string, List<NodeFieldValidationResult>> fieldResults,
Dictionary<string, List<NodeFieldValidationResult>> portResults)
{
var path = Path.Combine((string)nodeFields["Directory"],
string.Concat((string)nodeFields["FileName"], '.', ((string)nodeFields["Extension"]).TrimStart('.')));
if (!Path.IsPathRooted(path)) path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
return File.Exists(path)
? SuccessResult
: new NodeValidationResult(ValidationResult.HasErrors,
Localizer.GetLocalizedString("FileNotFound", Culture, path),
fieldResults, portResults);
}
}