using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;

namespace isnd.Attributes
{
    public class SafeNameAttribute : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            if (!(value is string))
                return false;
            string str = value as string;
            if (str.Length>126) return false;
            if (str.Any(c => !char.IsLetterOrDigit(c)
            && !"-_.".Contains(c))) return false;
            return true;
        }
    }
}