private void ValidateChecksumIntegrity(TransactionSetDto transactionSet)
{
var calcTxnCheckSum = CalculateTransactionCheckSum(transactionSet);
// Ignore a checksum of 1, this is used as a special case to bypass transaction checksum test. Useful for manual manipulation of the statement csv.
if (transactionSet.Checksum > 1 && transactionSet.Checksum != calcTxnCheckSum)
{
this.logger.LogError(l =>
l.Format(
"BudgetAnalyser statement file being loaded has an incorrect checksum of: {0}, transactions calculate to: {1}",
transactionSet.Checksum, calcTxnCheckSum));
throw new StatementModelChecksumException(
calcTxnCheckSum.ToString(CultureInfo.InvariantCulture),
string.Format(
CultureInfo.CurrentCulture,
"The statement being loaded, does not match the internal checksum. {0} {1}",
calcTxnCheckSum,
transactionSet.Checksum));
}
}