Files
monorepo/LCU.API.Internal.DocumentIngestor/LCU.Library.Internal.DocumentIngestorModels/Validations/MetaDataValidation.cs
T
2026-03-25 14:50:13 -05:00

84 lines
3.4 KiB
C#

using System;
using System.Globalization;
using LCU.Library.DocumentType.Extensions;
using LCU.Library.Internal.DocumentIngestorModels.Constants;
using LCU.Library.Internal.DocumentIngestorModels.Models;
namespace LCU.Library.Internal.DocumentIngestorModels.Validations
{
public static class MetaDataValidation
{
public static ProcessResult ValidateAccountNumber(ProcessResult processResult, string accountNumber)
{
if (string.IsNullOrWhiteSpace(accountNumber) || accountNumber == "0")
{
processResult = ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.AccountInvalidMessage);
}
return processResult;
}
public static ProcessResult ValidateFileName(ProcessResult processResult, string fileName)
{
if (string.IsNullOrWhiteSpace(fileName))
{
processResult = ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.FileNameInvalidMessage);
}
return processResult;
}
public static ProcessResult ValidateFullName(ProcessResult processResult, string fullName)
{
if (string.IsNullOrWhiteSpace(fullName))
{
processResult = ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.FullNameInvalidMessage);
}
return processResult;
}
public static ProcessResult ValidateDocumentType<T>(ProcessResult processResult, string documentType) where T: Enum
{
if (string.IsNullOrWhiteSpace(documentType) || !EnumExtensions.IsDocumentTypeOf<T>(documentType))
{
processResult = ProcessResult.ProcessCriticalFailure(processResult, $"{ValidationMessages.DocumentTypeInvalidMessage}. Document Type provided was {documentType}, which was not of type {typeof(T).Name}");
}
return processResult;
}
public static ProcessResult ValidatePdf(ProcessResult processResult, string pdf)
{
if (string.IsNullOrWhiteSpace(pdf))
{
processResult = ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.PdfInvalidMessage);
}
return processResult;
}
public static ProcessResult ValidateTin(ProcessResult processResult, string tin)
{
if (string.IsNullOrWhiteSpace(tin) || tin == "0")
{
processResult = ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.TinInvalidMessage);
}
return processResult;
}
public static ProcessResult ValidateDate(ProcessResult processResult, string date, string format)
{
try{
if (string.IsNullOrEmpty(date) || !DateTime.TryParseExact(date, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out _)){
return ProcessResult.ProcessDataMappingFailure(processResult, $"{ValidationMessages.CreationDateInvalidMessage}. Date provided {date} could not be parsed from format {format}");
}
}
catch (Exception){
return ProcessResult.ProcessDataMappingFailure(processResult, ValidationMessages.CreationDateInvalidMessage);
}
return processResult;
}
}
}