mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
42 lines
995 B
C#
42 lines
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);
|
||
|
}
|
||
|
}
|
||
|
}
|