using System; namespace Yavsc.Attributes.Validation { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)] public class YaRequiredAttribute : YaValidationAttribute { /// /// Gets or sets a flag indicating whether the attribute should allow empty strings. /// public bool AllowEmptyStrings { get; set; } public YaRequiredAttribute (string msg) : base() { ErrorMessage = msg; } public YaRequiredAttribute () { this.ErrorMessage = ResourcesHelpers.GlobalLocalizer["RequiredField"]; } public override bool IsValid(object value) { if (value == null) { return false; } // only check string length if empty strings are not allowed var stringValue = value as string; if (stringValue != null && !AllowEmptyStrings) { return stringValue.Trim().Length != 0; } return true; } } }