using SocialPub.ClientModels.Resources; using System.ComponentModel.DataAnnotations; namespace SocialPub.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; } } } }