/// <summary> /// Checks if requests item is not null and if it has value validates by nested validator. /// </summary> /// <param name="instance"></param> /// <returns></returns> public override ValidationResult Validate(T instance) { var result = base.Validate(instance); var innerType = typeof(T).GetGenericArguments().First(); var validator = ValidationEngine.GetValidator(innerType); if (validator == null) { return(result); } var itemValidation = validator.Validate(instance.Item); if (itemValidation.IsValid) { return(result); } return(new ValidationResult((result.Errors ?? new List <ValidationFailure>()).Concat(itemValidation.Errors))); }