yavsc/src/Yavsc.Abstract/Attributes/Validation/YaStringLength.cs

46 lines
1.2 KiB
C#

using System;
8 years ago
namespace Yavsc.Attributes.Validation
{
public class YaStringLength: YaValidationAttribute
{
public long MinimumLength { get; set; } = -1;
8 years ago
private long maxLen;
public YaStringLength(long maxLen) : base( ()=> "BadStringLength")
8 years ago
{
this.maxLen = maxLen;
}
// hugly ...
static long excedent=0;
static long manquant=0;
8 years ago
public override bool IsValid(object value) {
8 years ago
if (value == null) {
return false;
}
8 years ago
string stringValue = value as string;
if (stringValue==null) return false;
if (MinimumLength>=0)
8 years ago
{
if (stringValue.Length< MinimumLength)
8 years ago
return false;
}
if (maxLen>=0)
{
if (stringValue.Length>maxLen) {
return false;
}
}
return true;
}
public override string FormatErrorMessage(string name)
{
var temp = base.FormatErrorMessage(name);
return string.Format(temp, MinimumLength, maxLen);
}
8 years ago
}
}