private void Validate(bool isValidating) { ValidationResult validationResult; IList <IValidationParameter> parameters = new List <IValidationParameter>(); if (this.ParentExpression != null) { parameters = ValidationSetting.GetValidations(this.ParentExpression.Key, this.Name); } foreach (var validation in ValidationFunctions) { var parameter = parameters.FirstOrDefault(p => p.ValidationKey == validation.ValidationKey); validationResult = validation.Function.Invoke(this, (parameter == null) ? null : parameter.Parameters); if (!validationResult.IsValidate) { if (!isValidating) { throw new Exception(validationResult.ValidateMessage); } else { ValidationsResult.Add(validationResult); } } } }
public async Task <ValidationsResult> Validacoes(string url, string validations) { var documentoFromUrl = await JsonData.GetAndReadByteArrayAsync(url); var validationsSelector = JsonConvert.DeserializeObject <ValidationsSelector>(validations); var result = new ValidationsResult(); using (var memoryStream = new MemoryStream(documentoFromUrl)) { result.IsPdf = true; result.PossuiRestricoesLeituraOuAlteracao = false; // Possui assinatura digital result.PossuiAssinaturaDigital = AssinaturaDigitalCore.HasDigitalSignature(memoryStream); // Possui carimbo edocs result.RegexResult = CarimboCore.BuscarExpressoesRegulares( memoryStream, validationsSelector.RegularExpressionsParameters.ExpressoesRegulares, validationsSelector.RegularExpressionsParameters.Paginas); // Obter informações sobre o pdf result.PdfInfo = PdfInfo(memoryStream); memoryStream.Close(); } return(result); }
public virtual void ClearValidationResult() { foreach (var parameter in Parameters) { parameter.Value.ClearValidationResult(); } if (SubExpression != null) { SubExpression.ClearValidationResult(); } ValidationsResult.Clear(); }