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); }
public virtual IEnumerable <string> Transform(IEnumerable <string> input, DocumentSpecification sourceSpecification, DocumentSpecification targetSpecification) { ETLMapperEventArgs e = new ETLMapperEventArgs() { SourceSpecification = sourceSpecification, TargetSpecification = targetSpecification }; OnMapperStart?.Invoke(this, e); foreach (var item in input) { e.Input = item; OnTransforming?.Invoke(this, e); e.Output = TransformInputToOutput(item, e.SourceSpecification, e.TargetSpecification); e.Counter++; OnTransformed?.Invoke(this, e); yield return(e.Output); } OnMapperEnd?.Invoke(this, e); }
/// <summary> /// Validates a document. /// </summary> /// <param name="documentSpecification">The document specification.</param> /// <returns>True if validation is passed. Otherwise, false.</returns> protected abstract bool ValidateDocument(DocumentSpecification documentSpecification);
/// <summary> /// Transforms the input to the output. /// </summary> /// <param name="input">The input to transform.</param> /// <param name="sourceSpecification">The source's document specification.</param> /// <param name="targetSpecification">The target's document specification.</param> /// <returns>The transformation output.</returns> protected abstract string TransformInputToOutput(string input, DocumentSpecification sourceSpecification, DocumentSpecification targetSpecification);