using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http.Filters;
using System.Web.Http.Controllers;
using System.ComponentModel.DataAnnotations;
namespace Dovetail.Novaerus.Argus.WebUI.Infrastructure.Validation
{
// http://stackoverflow.com/questions/14836248/passing-custom-parameters-to-validationattribute
public class RequireDictItemAttribute : RequiredAttribute
{
string[] _args;
public RequireDictItemAttribute(params string[] args)
{
_args = args;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (_args.Contains((string)value))
return ValidationResult.Success;
var id = validationContext.ObjectInstance.GetType()
.GetProperty("Id")
.GetValue(validationContext.ObjectInstance, null);
var key = new[]
{
id.ToString()
};
return new ValidationResult("Invalid value.", key);
}
}
}