SocialPub/PrivaPub.ClientModels/ValidatorAttributes/NoWhiteSpacesAttribute.cs

61 lines
1.1 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using PrivaPub.ClientModels.Resources;
using System.ComponentModel.DataAnnotations;
namespace PrivaPub.ClientModels.ValidatorAttributes
{
[AttributeUsage(AttributeTargets.Property)]
public class NoWhiteSpacesAttribute : ValidationAttribute
{
const string errorMessageResourceName = "EmptySpacesNotAllowed";
readonly Type errorMessageResourceType = typeof(ErrorsResource);
readonly string[] spaces = new[] {
" ",
" ",
" ",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" ",
};
public NoWhiteSpacesAttribute()
{
ErrorMessageResourceName = errorMessageResourceName;
ErrorMessageResourceType = errorMessageResourceType;
}
public override bool IsValid(object value)
{
var str = value?.ToString();
if (string.IsNullOrEmpty(str))
return true;
var hasWhiteSpace = false;
try
{
foreach (var space in spaces)
{
hasWhiteSpace = str.Contains(space);
if (hasWhiteSpace) break;
}
return !hasWhiteSpace;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
}
}