Custom validation in dotnet Core
From Logic Wiki
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using VDSCore.Client.TheVDS.Shared;
namespace VDSCore.Client.TheVDS.ViewModels
{
public class DirectDebit : IValidatableObject
{
[Required(ErrorMessage= "The Name of Practice Account as it appears on your bank statement field is required.")]
public string AccountHolderOne { get; set; }
[Required(ErrorMessage = "The Bank/building society Account Number field is required.")]
public string AccountNumber { get; set; }
[Required(ErrorMessage = "The Branch Sort Code field is required.")]
public string SortCode { get; set; }
[Required(ErrorMessage = "The Bank/building society field is required.")]
public string BankBuildingSociety { get; set; }
[Required(ErrorMessage = "The Address field is required.")]
public string Address { get; set; }
[Required(ErrorMessage = "The Town/City field is required.")]
public string Town { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var controlName = new List<string>();
if (!BankDetailsCheck.IsAValidAccountNumber(SortCode, AccountNumber))
{
controlName.Add("AccountNumber");
controlName.Add("SortCode");
yield return new ValidationResult("'Sort Code' and/or 'Account Number' are not valid", controlName);
}
}
}
}