public ValidationContextTreeViewModel(IValidationNamesService validationNamesService) { Argument.IsNotNull(() => validationNamesService); _validationNamesService = validationNamesService; if (ValidationResultTags is null) { ValidationResultTags = new FastObservableCollection <ValidationResultTagNode>(); } }
public ValidationResultNode(IValidationResult validationResult, IValidationNamesService validationNamesService, bool isExpanded) : base(isExpanded) { Argument.IsNotNull(() => validationResult); Argument.IsNotNull(() => validationNamesService); DisplayName = validationNamesService.GetDisplayName(validationResult); ResultType = validationResult.ValidationResultType; LineNumber = validationNamesService.GetLineNumber(validationResult); }
public ValidationResultTypeNode(ValidationResultType resultType, IEnumerable <IValidationResult> validationResults, IValidationNamesService validationNamesService, bool isExpanded) : base(isExpanded) { Argument.IsNotNull(() => validationResults); Argument.IsNotNull(() => validationNamesService); ResultType = resultType; var children = validationResults.Select(x => new ValidationResultNode(x, validationNamesService, isExpanded)) .OrderBy(x => x.LineNumber).ThenBy(x => x.DisplayName).ToList(); Children.ReplaceRange(children); UpdateDisplayName(); }
public static void AddValidationResultTypeNode(this ValidationResultTagNode validationResultTagNode, IValidationContext validationContext, ValidationResultType validationResultType, IValidationNamesService validationNamesService, bool isExpanded) { Argument.IsNotNull(() => validationResultTagNode); Argument.IsNotNull(() => validationContext); Argument.IsNotNull(() => validationNamesService); var validationResults = validationNamesService.GetCachedResultsByTagName(validationResultTagNode.TagName) .Where(x => x.ValidationResultType == validationResultType).ToList(); if (!validationResults.Any()) { return; } var resultTypeNode = new ValidationResultTypeNode(validationResultType, validationResults, validationNamesService, isExpanded); validationResultTagNode.Children.Add(resultTypeNode); }