mirror of https://github.com/Sonarr/Sonarr
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);
|
|
}
|
|
}
|
|
} |