public IBaseAppService BusinessValidation <TRequest>(TRequest request, Func <TRequest, OperationResultWithError <List <ValidationResult> > > validation_func) { this._business_validation_errors = validation_func(request); this._model_valid = (this._models_validation_errors.IsNotNull() && this._models_validation_errors.result_object.HaveAny()); if (!this._model_valid) { this._models_validation_errors.status_code = System.Net.HttpStatusCode.BadRequest; } return(this); }
public virtual OperationResult IsValid(T obj) { var validation_result = new List <ValidationResult>(); OperationResult result = null; using (var benchmark = TimeCounter.Instance) { var validationResult = ModelValidation.TryValidateObjectRecursive(obj, validation_result); validationResult = validationResult && _domainValid.IsValid(obj, validation_result).success; if (validationResult) { result = new OperationResult(validationResult, string.Empty, benchmark.ResponseTime); } else { var validationErrors = new List <OperationError>(); validation_result.ForEach(e => { validationErrors.Add(new OperationError ( nameof(T), string.Join(" ", e.MemberNames), string.Empty, e.ErrorMessage) ); }); result = new OperationResultWithError ( validationErrors, benchmark.ResponseTime ); } } return(result); }