protected override async Task<ValidationResult> IsValidAsync(object value, ValidationContext validationContext) { // get validation data var newBid = (double)value; var auctionBid = (AuctionBid)validationContext.ObjectInstance; // determine bid abuse var service = new AuctionService(); var isAbuse = await service.IsBidAbuseAsync(auctionBid, newBid); return isAbuse ? new ValidationResult("Your bid has been detected to be an abuse") : ValidationResult.Success; }
protected override async Task<ValidationResult> IsValidAsync(object value, ValidationContext validationContext) { // get validation data var newBid = (double)value; var auctionBid = (AuctionBid)validationContext.ObjectInstance; // get actual current bid value var service = new AuctionService(); var currentBid = await service.GetCurrentBidAsync(auctionBid); // perform validation return (newBid > auctionBid.CurrentBid && newBid <= currentBid) ? new ValidationResult("Your bid has been surpassed.") : ValidationResult.Success; }