Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }