public Task <Validation> SubmitAsync(ValidationRequestEntry entry, QualityLevelName quality = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
 {
     return(SubmitAsync(new[] { entry },
                        quality: quality,
                        waitingStrategy: waitingStrategy,
                        cancellationToken: cancellationToken));
 }
        public Task <Validation> SubmitAsync(string emailAddress, QualityLevelName quality = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
        {
            if (emailAddress == null)
            {
                throw new ArgumentNullException(nameof(emailAddress));
            }

            return(SubmitAsync(new[] { emailAddress },
                               quality: quality,
                               waitingStrategy: waitingStrategy,
                               cancellationToken: cancellationToken));
        }
        public Task <Validation> SubmitAsync(IEnumerable <string> emailAddresses, QualityLevelName quality = default, DeduplicationMode deduplication = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
        {
            if (emailAddresses == null)
            {
                throw new ArgumentNullException(nameof(emailAddresses));
            }

            return(SubmitAsync(emailAddresses.Select(emailAddress => new ValidationRequestEntry(emailAddress)),
                               quality: quality,
                               deduplication: deduplication,
                               waitingStrategy: waitingStrategy,
                               cancellationToken: cancellationToken));
        }
 public Task <Validation> SubmitAsync(IEnumerable <ValidationRequestEntry> entries, QualityLevelName quality = default, DeduplicationMode deduplication = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
 {
     return(SubmitAsync(new ValidationRequest(entries, quality, deduplication),
                        waitingStrategy: waitingStrategy,
                        cancellationToken: cancellationToken));
 }
        public async Task <Validation> SubmitAsync(Stream file, MediaTypeHeaderValue contentType, QualityLevelName quality = default, DeduplicationMode deduplication = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }
            if (contentType == null)
            {
                throw new ArgumentNullException(nameof(contentType));
            }

            using var request = new FileValidationRequest(file, contentType, quality, deduplication, leaveOpen: true);

            return(await SubmitAsync(request,
                                     waitingStrategy,
                                     cancellationToken)
                   .ConfigureAwait(false));
        }
        public async Task <Validation> SubmitAsync(byte[] file, MediaTypeHeaderValue contentType, QualityLevelName quality = default, DeduplicationMode deduplication = default, WaitingStrategy waitingStrategy = default, CancellationToken cancellationToken = default)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            using var stream = new MemoryStream(file);
            return(await SubmitAsync(stream,
                                     contentType,
                                     quality,
                                     deduplication,
                                     waitingStrategy,
                                     cancellationToken)
                   .ConfigureAwait(false));
        }