예제 #1
0
        public void SendUriAsync_Simple()
        {
            var request = new SendUriRequest {
                PrinterUri = PrinterUrl, JobId = JobId, DocumentUri = DocumentUri
            };
            var result = _protocol.Construct(request);

            CheckResult(result);
        }
예제 #2
0
        /// <summary>
        ///     Print-Job Request
        ///     https://tools.ietf.org/html/rfc2911#section-3.2.1.1
        /// </summary>
        /// <param name="request"></param>
        public IppRequestMessage Construct(SendUriRequest request)
        {
            if (request.DocumentUri == null && !request.LastDocument)
            {
                throw new ArgumentException($"{nameof(request.DocumentUri)} must be set for non-last document");
            }

            return(ConstructIppRequest(request));
        }
예제 #3
0
        public void SendUriAsync_Full()
        {
            var request = new SendUriRequest
            {
                PrinterUri         = PrinterUrl,
                JobId              = JobId,
                DocumentUri        = DocumentUri,
                DocumentAttributes = new DocumentAttributes
                {
                    DocumentName            = "Document Name",
                    DocumentFormat          = "application/octet-stream",
                    DocumentNaturalLanguage = "en"
                }
            };

            var result = _protocol.Construct(request);

            CheckResult(result);
        }
예제 #4
0
        public async Task SendUriAsync_Full()
        {
            await TestJobRequestAsync(async jobId =>
            {
                var request = new SendUriRequest
                {
                    PrinterUri         = Options.Value.PrinterUrl,
                    JobId              = jobId,
                    DocumentUri        = Options.Value.DocumentUri,
                    DocumentAttributes = new DocumentAttributes
                    {
                        DocumentName            = "Document Name",
                        DocumentFormat          = "application/octet-stream",
                        DocumentNaturalLanguage = "en"
                    }
                };

                return(await TestJobRequestAsync(request, (client, r) => client.SendUriAsync(r)));
            });
        }
예제 #5
0
 /// <summary>
 ///     Send-URI Operation
 ///     https://tools.ietf.org/html/rfc2911#section-3.3.2
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <SendUriResponse> SendUriAsync(SendUriRequest request)
 {
     return(await SendAsync(request.PrinterUri, () => _ippProtocol.Construct(request),
                            ippResponse => _ippProtocol.ConstructSendUriResponse(ippResponse)));
 }