26 lines
1.1 KiB
C#
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;
|
|
}
|
|
}
|