84 lines
3.4 KiB
C#
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;
|
|
}
|
|
}
|
|
} |