protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var statementTransaction = validationContext.ObjectInstance as StatementTransaction; if (statementTransaction == null) { return(new ValidationResult("Statement Transaction is empty")); } NiboOfxParserContext niboContext = new NiboOfxParserContext(); var customId = new StatementTransaction( statementTransaction.Value, statementTransaction.Type, statementTransaction.Id, statementTransaction.PostedDate, statementTransaction.Memo, statementTransaction.PayeeId).CustomId; var customIdAlreadyExists = niboContext.StatementTransactions.FirstOrDefault(x => x.CustomId == customId); if (customIdAlreadyExists == null) { return(ValidationResult.Success); } else { return(new ValidationResult($"The statement transaction already exists")); } // return base.IsValid(value, validationContext); }