Files
monorepo/LCU.API.Internal.LoanRate/LCU.Library.Internal.LoanRateModels/Responses/Validation/ValidationResult.cs
T
2026-04-07 14:21:04 -05:00

26 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace LCU.Library.Internal.LoanRateModels.Responses.Validation;
public class ValidationResult<TEntity, TValidationItem> where TValidationItem : ValidationItem
{
public TEntity NewItem { get; set; }
public TEntity? OriginalItem { get; set; }
public virtual List<TValidationItem> Validations { get; set; }
public string Message { get; set; } = string.Empty;
public bool Pass { get; set; } = true;
public List<string> ValidationMessages => Validations.Where(x => !string.IsNullOrWhiteSpace(x.Message))
.Select(x => x.Message).ToList();
public List<TValidationItem> PassedValidations => Validations.Where(x => x.Pass).ToList();
public List<TValidationItem> FailedValidations => Validations.Where(x => !x.Pass).ToList();
public double Percentage => Math.Round(((double)PassedValidations.Count / Validations.Count) * 100, 2);
public bool CheckValidation()
{
Pass = Validations.Count == 0 || Validations.All(x => x.Pass);
return Pass;
}
}