private void AddValidationRules() { Validator.AddRule(() => Name, () => RuleResult.Assert(!string.IsNullOrWhiteSpace(Name), "Name is required")); Validator.AddRule(() => Catagory, () => RuleResult.Assert((Catagory != null), "Catagory is required")); Validator.AddRule(() => Email, () => RuleResult.Assert(!string.IsNullOrWhiteSpace(Email), "Email is required")); Validator.AddRule(() => Email, () => { const string regexPattern = @"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"; return(RuleResult.Assert(Regex.IsMatch(Email, regexPattern), "Email must by a valid email address")); }); Validator.AddAsyncRule(() => Email, async() => { bool isAvailable = await administrationService.CheckEmailIsAvailable(Email, this.artist); return(RuleResult.Assert(isAvailable, string.Format("Email {0} is taken. Please choose a different one.", Email))); }); }