root/StructuredWeb/StructuredWeb/Validation/ValidationFramework/Validators/EmployeeValidator.cs

User picture

Author: marisic.net

Revision: 112 («Previous)


File Size: 2 KB

(February 15, 2009 21:44 UTC) Over 3 years ago


  

 
Show/hide line numbers
#region Using Statements

using System;
using StructuredWeb.Domain.Business;
using StructuredWeb.ValidationFramework.Interfaces;
using StructuredWeb.ValidationFramework.Result;

#endregion

namespace StructuredWeb.ValidationFramework.Validators
{
    public class EmployeeValidator : IValidator<Employee>
    {
        #region Implementation of IValidation<Employee>

        public ValidationResult Validate(Employee employee)
        {
            return Validate(employee, false);
        }

        public ValidationResult Validate(Employee employee, bool suppressWarnings)
        {
            var result = new ValidationResult();

            //This code here would be replaced with a validation rules engine later

            if (employee != null)
            {
                if (!suppressWarnings && employee.HireDate > DateTime.Now)
                    result.Messages.Add(new ValidationMessage
                                            {
                                                Message = string.Format("Employee hire date: {0} is set in the future.", employee.HireDate),
                                                Warning = true
                                            });

                if (employee.Person != null)
                {
                    if (string.IsNullOrEmpty(employee.Person.FirstName))
                        result.Messages.Add(new ValidationMessage {Message = "Employee FirstName is required."});
                    if (string.IsNullOrEmpty(employee.Person.LastName))
                        result.Messages.Add(new ValidationMessage {Message = "Employee LastName is required."});
                }
                else
                    result.Messages.Add(new ValidationMessage {Message = "Employee person data is missing."});
            }
            else
                result.Messages.Add(new ValidationMessage {Message = "Employee data is missing."});

            return result;
        }

        #endregion
    }
}