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);