Validation Templates
Pre-built validation templates for common scenarios like user registration, payment processing, and address validation.
What are Validation Templates?
Validation Templates in Validixty are pre-configured validation workflows for common business scenarios. These templates encapsulate best practices and regulatory requirements for specific use cases, allowing you to apply comprehensive validation with minimal configuration.
Why Use Validation Templates?
- Best Practices: Pre-configured with industry standards
- Compliance: Built-in regulatory requirements
- Rapid Development: Ready-to-use validation workflows
- Consistency: Standardized validation across applications
Before Using Validixty
Without validation templates, implementing comprehensive validation might require extensive setup:
// Manual user registration validation
public ValidationResult ValidateUserRegistration(UserRegistration user)
{
var errors = new List();
// Email validation with multiple checks
if (string.IsNullOrEmpty(user.Email))
errors.Add("Email is required");
else if (!Regex.IsMatch(user.Email, "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"))
errors.Add("Invalid email format");
else if (user.Email.Length > 254)
errors.Add("Email too long");
// Password strength validation
if (string.IsNullOrEmpty(user.Password))
errors.Add("Password is required");
else if (user.Password.Length < 8)
errors.Add("Password must be at least 8 characters");
else if (!Regex.IsMatch(user.Password, "(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z\\d])"))
errors.Add("Password must contain uppercase, lowercase, number, and special character");
// Phone validation (country-specific)
if (!string.IsNullOrEmpty(user.Phone))
{
if (!Regex.IsMatch(user.Phone, "^(\\+1|1)?[\\s\\-\\.\\.]?\\(?[0-9]{3}\\)?[\\s\\-\\.\\.]?[0-9]{3}[\\s\\-\\.\\.]?[0-9]{4}$"))
errors.Add("Invalid US phone number");
}
// Name validation
if (string.IsNullOrEmpty(user.FirstName) || user.FirstName.Length < 2)
errors.Add("First name is required and must be at least 2 characters");
if (string.IsNullOrEmpty(user.LastName) || user.LastName.Length < 2)
errors.Add("Last name is required and must be at least 2 characters");
// Age validation
if (user.DateOfBirth > DateTime.Now.AddYears(-13))
errors.Add("Must be at least 13 years old");
return errors.Any() ? ValidationResult.Failure(string.Join("; ", errors))
: ValidationResult.Success();
}
After Using Validixty
With Validixty's Validation Templates, comprehensive validation is just one line:
using Validixty.Core;
// Use pre-built user registration template
var result = ValidationTemplates.UserRegistration.Validate(user);
// That's it! All validation logic is encapsulated in the template
How It Saves Time
- Zero configuration: Use templates out of the box
- Industry standards: Pre-built compliance and best practices
- Maintainable: Updates automatically apply to all usages
- Customizable: Extend or modify templates as needed
Available Templates
User Registration Template
Comprehensive user registration validation including email, password strength, personal information, and age verification.
// Basic usage
var result = ValidationTemplates.UserRegistration.Validate(user);
// With custom configuration
var customRegistration = ValidationTemplates.UserRegistration
.WithMinimumAge(16)
.WithRequiredFields("Email", "Password", "FirstName", "LastName")
.Validate(user);
Payment Processing Template
Complete payment validation including credit cards, amounts, currencies, and security checks.
// Standard payment validation
var paymentResult = ValidationTemplates.PaymentProcessing.Validate(payment);
// E-commerce specific validation
var ecommercePayment = ValidationTemplates.PaymentProcessing
.WithFraudDetection()
.WithAmountLimits(minAmount: 0.01m, maxAmount: 10000.00m)
.Validate(payment);
Address Validation Template
Multi-country address validation with postal codes, coordinates, and format verification.
// Country-specific address validation
var addressResult = ValidationTemplates.AddressValidation
.ForCountry(CountriesEnum.Egypt)
.Validate(address);
// International address validation
var internationalAddress = ValidationTemplates.AddressValidation
.WithCoordinatesValidation()
.WithPostalCodeValidation()
.Validate(address);
Business Registration Template
Company registration validation including tax IDs, business licenses, and legal requirements.
// Standard business registration
var businessResult = ValidationTemplates.BusinessRegistration.Validate(company);
// Industry-specific validation
var techCompany = ValidationTemplates.BusinessRegistration
.ForIndustry("Technology")
.WithAdditionalRequirements("DomainRegistration", "IPPortfolio")
.Validate(company);
Healthcare Data Template
HIPAA-compliant validation for healthcare data including PHI protection and medical record validation.
// Patient data validation
var patientResult = ValidationTemplates.HealthcareData
.ForPatientRecords()
.WithPHIProtection()
.Validate(patientData);
// Medical device validation
var deviceResult = ValidationTemplates.HealthcareData
.ForMedicalDevices()
.WithFDAApproval()
.Validate(deviceData);
Financial Services Template
KYC/AML compliant validation for financial services including identity verification and risk assessment.
// Customer onboarding
var kycResult = ValidationTemplates.FinancialServices
.ForCustomerOnboarding()
.WithKYCChecks()
.Validate(customer);
// Transaction validation
var transactionResult = ValidationTemplates.FinancialServices
.ForTransactions()
.WithAntiMoneyLaundering()
.WithAmountLimits(maxDaily: 10000.00m)
.Validate(transaction);
Creating Custom Templates
Basic Custom Template
// Create a custom template
var customTemplate = ValidationTemplate.Create("CustomForm")
.AddValidator(new EmailAddressValidator(), "Email")
.AddValidator(new PhoneNumberValidator(), "Phone")
.AddConditionalValidator(
x => x.IsBusiness,
Validation.For("Business").Check(x => !string.IsNullOrEmpty(x.CompanyName)))
.Build();
// Use the custom template
var result = customTemplate.Validate(formData);
Template Composition
// Combine existing templates
var combinedTemplate = ValidationTemplate.Compose("AdvancedRegistration")
.Include(ValidationTemplates.UserRegistration)
.Include(ValidationTemplates.AddressValidation)
.AddCustomValidator(new SocialSecurityValidator(), "SSN")
.WithConditionalValidation(x => x.IsPremium,
Validation.For("Premium").CheckCreditCard(x => x.PaymentCard))
.Build();
Template Configuration
// Configure template behavior
var configuredTemplate = ValidationTemplates.UserRegistration
.Configure(config =>
{
config.StrictMode = true;
config.IncludeDetailedErrors = true;
config.EnablePerformanceMonitoring = true;
config.CustomErrorMessages = new Dictionary
{
["Email.Required"] = "Please provide your email address",
["Password.Weak"] = "Password must be more secure"
};
})
.Validate(user);