public async Task <IReadOnlyCollection <QueryTag> > ValidateAsync(DicomDataset dataset, long watermark, IReadOnlyCollection <QueryTag> queryTags, CancellationToken cancellationToken) { EnsureArg.IsNotNull(dataset, nameof(dataset)); EnsureArg.IsNotNull(queryTags, nameof(queryTags)); List <QueryTag> validTags = new List <QueryTag>(); foreach (var queryTag in queryTags) { try { dataset.ValidateQueryTag(queryTag, _minimumValidator); validTags.Add(queryTag); } catch (ElementValidationException ex) { if (queryTag.IsExtendedQueryTag) { // We don't support reindex on core tag, so the query tag is always extended query tag. await _extendedQueryTagErrorsService.AddExtendedQueryTagErrorAsync(queryTag.ExtendedQueryTagStoreEntry.Key, ex.ErrorCode, watermark, cancellationToken); } } } return(validTags); }
public async Task GivenValidInput_WhenAddingExtendedQueryTag_ThenShouldSucceed() { const int TagKey = 7; const long Watermark = 30; const ValidationErrorCode ErrorCode = ValidationErrorCode.DateIsInvalid; await _extendedQueryTagErrorsService.AddExtendedQueryTagErrorAsync( TagKey, ErrorCode, Watermark, _tokenSource.Token); await _extendedQueryTagErrorStore .Received(1) .AddExtendedQueryTagErrorAsync( Arg.Is(TagKey), Arg.Is(ErrorCode), Arg.Is(Watermark), Arg.Is(_tokenSource.Token)); }