From 551066ed9a255bd47c1c5789ec1998fda64bd5aa Mon Sep 17 00:00:00 2001 From: vnugent Date: Thu, 12 Jan 2023 17:47:40 -0500 Subject: Large project reorder and consolidation --- .../AccountValidations.cs | 107 --------------------- 1 file changed, 107 deletions(-) delete mode 100644 VNLib.Plugins.Essentials.Accounts/AccountValidations.cs (limited to 'VNLib.Plugins.Essentials.Accounts/AccountValidations.cs') diff --git a/VNLib.Plugins.Essentials.Accounts/AccountValidations.cs b/VNLib.Plugins.Essentials.Accounts/AccountValidations.cs deleted file mode 100644 index 972bd36..0000000 --- a/VNLib.Plugins.Essentials.Accounts/AccountValidations.cs +++ /dev/null @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2022 Vaughn Nugent -* -* Library: VNLib -* Package: VNLib.Plugins.Essentials.Accounts -* File: AccountValidations.cs -* -* AccountValidations.cs is part of VNLib.Plugins.Essentials.Accounts which is part of the larger -* VNLib collection of libraries and utilities. -* -* VNLib.Plugins.Essentials.Accounts is free software: you can redistribute it and/or modify -* it under the terms of the GNU Affero General Public License as -* published by the Free Software Foundation, either version 3 of the -* License, or (at your option) any later version. -* -* VNLib.Plugins.Essentials.Accounts is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Affero General Public License for more details. -* -* You should have received a copy of the GNU Affero General Public License -* along with this program. If not, see https://www.gnu.org/licenses/. -*/ - -using FluentValidation; - -using VNLib.Plugins.Extensions.Validation; - -#nullable enable - -namespace VNLib.Plugins.Essentials.Accounts -{ - public static class AccountValidations - { - /// - /// Central password requirement validator - /// - public static IValidator PasswordValidator { get; } = GetPassVal(); - - public static IValidator AccountDataValidator { get; } = GetAcVal(); - - - static IValidator GetPassVal() - { - InlineValidator passVal = new(); - - passVal.RuleFor(static password => password) - .NotEmpty() - .Length(min: 8, max: 100) - .Password() - .WithMessage(errorMessage: "Password does not meet minium requirements"); - - return passVal; - } - - static IValidator GetAcVal() - { - InlineValidator adv = new (); - - //Validate city - - adv.RuleFor(t => t.City) - .MaximumLength(35) - .AlphaOnly() - .When(t => t.City?.Length > 0); - - adv.RuleFor(t => t.Company) - .MaximumLength(50) - .SpecialCharacters() - .When(t => t.Company?.Length > 0); - - //Require a first and last names to be set together - adv.When(t => t.First?.Length > 0 || t.Last?.Length > 0, () => - { - adv.RuleFor(t => t.First) - .Length(1, 35) - .AlphaOnly(); - adv.RuleFor(t => t.Last) - .Length(1, 35) - .AlphaOnly(); - }); - - adv.RuleFor(t => t.PhoneNumber) - .PhoneNumber() - .When(t => t.PhoneNumber?.Length > 0) - .OverridePropertyName("Phone"); - - //State must be 2 characters for us states if set - adv.RuleFor(t => t.State) - .Length(2) - .When(t => t.State?.Length > 0); - - adv.RuleFor(t => t.Street) - .AlphaNumericOnly() - .MaximumLength(50) - .When(t => t.Street?.Length > 0); - - //Allow empty zip codes, but if one is defined, is must be less than 7 characters - adv.RuleFor(t => t.Zip) - .NumericOnly() - .MaximumLength(7) - .When(t => t.Zip?.Length > 0); - - return adv; - } - } -} -- cgit