using System; using System.Collections.Generic; using System.Linq; namespace LCU.Library.Internal.LoanRateModels.Responses.Validation; public class ValidationResult where TValidationItem : ValidationItem { public TEntity NewItem { get; set; } public TEntity? OriginalItem { get; set; } public virtual List Validations { get; set; } public string Message { get; set; } = string.Empty; public bool Pass { get; set; } = true; public List ValidationMessages => Validations.Where(x => !string.IsNullOrWhiteSpace(x.Message)) .Select(x => x.Message).ToList(); public List PassedValidations => Validations.Where(x => x.Pass).ToList(); public List 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; } }