public virtual bool Validate(DocumentSpecification documentSpecification) { bool isValid = true; if (documentSpecification.IsValidate) { ETLValidatorEventArgs e = new ETLValidatorEventArgs() { DocumentSpecification = documentSpecification }; OnValidating?.Invoke(this, e); try { isValid = ValidateDocument(documentSpecification); } catch (Exception exception) { if (IsThrowValidationException) { throw exception; } else { e.Exception = exception; isValid = false; } } e.IsValid = isValid; OnValidated?.Invoke(this, e); } return(isValid); }
protected void ValidateData(IntegrationContext context) { foreach (DataItem item in context.Data) { if (OnValidating != null) { DataItemValidationHandler handler = (DataItemValidationHandler)OnValidating.Clone(); handler.Invoke(item, new DataItemValidationArgs(item.ValidationResults)); if (!item.IsValid) { context.SkippedData.Add(item); context.Data.Remove(item); } } } // TODO: release the event handler }