summaryrefslogtreecommitdiff
path: root/Validators/NameAttribute.cs
blob: 2f1a5ae2f63ed09fe2115dbdafa93587cfd94425 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.ComponentModel.DataAnnotations;
using LibraryAPI.Models;

namespace LibraryAPI.Validators {
    public class NameAttribute : ValidationAttribute {
        public string[] valid_names = { "regular", "librarian" };
	public string GetErrorMessage() {
            return "Group name must be \"regular\" or \"librarian\"";
        }

	protected override ValidationResult? IsValid(object? value, ValidationContext validationContext) {
	    var group = (Group) validationContext.ObjectInstance;

	    if(Array.Exists(valid_names, s => s == group.Name))
		return ValidationResult.Success;

	    return new ValidationResult(GetErrorMessage());
	}
    }
}