1
0
Fork 0
mirror of https://github.com/Sonarr/Sonarr synced 2024-12-31 20:26:16 +00:00
Sonarr/NzbDrone.Api/REST/RestResource.cs
2013-04-19 17:05:28 -07:00

42 lines
No EOL
995 B
C#

using FluentValidation;
namespace NzbDrone.Api.REST
{
public abstract class RestResource<T>
where T : RestResource<T>, new()
{
public int Id { get; set; }
public virtual string ResourceName
{
get
{
return GetType().Name.ToLower();
}
}
protected AbstractValidator<T> PostValidator { get; private set; }
protected AbstractValidator<T> PutValidator { get; private set; }
public RestResource()
{
PostValidator = new InlineValidator<T>();
PutValidator = new InlineValidator<T>();
PostValidator.RuleFor(m => m.Id).Equal(0);
PutValidator.RuleFor(m => m.Id).GreaterThan(0);
}
public void ValidateForPost()
{
PostValidator.ValidateAndThrow((T)this);
}
public void ValidateForPut()
{
PutValidator.ValidateAndThrow((T)this);
}
}
}