Skip to content

Commit ea583cd

Browse files
committed
extend configuration, change return value for datatime and time attributes
1 parent f35bc40 commit ea583cd

4 files changed

Lines changed: 26 additions & 26 deletions

File tree

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
</PropertyGroup>
66
<ItemGroup>
77
<PackageVersion Include="Quartz.Extensions.Hosting" Version="3.13.0" />
8-
<PackageVersion Include="SharpIppNext" Version="1.0.6" />
8+
<PackageVersion Include="SharpIppNext" Version="1.0.9" />
99
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
1010
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
1111
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />

SharpIppNextServer/Models/PrinterOptions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ namespace SharpIppNextServer.Models;
55
public class PrinterOptions
66
{
77
public string Name { get; set; } = "SharpIpp";
8-
public Sides Sides { get; set; } = Sides.OneSided;
9-
public PrintScaling PrintScaling { get; set; } = PrintScaling.Auto;
10-
public string Media { get; set; } = "iso_a4_210x297mm";
11-
public Resolution Resolution { get; set; } = new(600, 600, ResolutionUnit.DotsPerInch);
8+
public Sides[] Sides { get; set; } = [SharpIpp.Protocol.Models.Sides.OneSided];
9+
public PrintScaling[] PrintScaling { get; set; } = [SharpIpp.Protocol.Models.PrintScaling.Auto];
10+
public string[] Media { get; set; } = ["iso_a4_210x297mm"];
11+
public Resolution[] Resolution { get; set; } = [new(600, 600, ResolutionUnit.DotsPerInch)];
1212
public Finishings Finishings { get; set; } = Finishings.None;
13-
public PrintQuality PrintQuality { get; set; } = PrintQuality.High;
13+
public PrintQuality[] PrintQuality { get; set; } = [SharpIpp.Protocol.Models.PrintQuality.High];
1414
public int JobPriority { get; set; } = 1;
1515
public int Copies { get; set; } = 1;
1616
public Orientation Orientation { get; set; } = Orientation.Portrait;

SharpIppNextServer/Services/PrinterService.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -334,24 +334,24 @@ private GetPrinterAttributesResponse GetGetPrinterAttributesResponse(GetPrinterA
334334
MultipleDocumentJobsSupported = !IsRequired(PrinterAttribute.MultipleDocumentJobsSupported) ? null : true,
335335
CompressionSupported = !IsRequired(PrinterAttribute.CompressionSupported) ? null : [Compression.None],
336336
PrinterLocation = !IsRequired(PrinterAttribute.PrinterLocation) ? null : "Internet",
337-
PrintScalingDefault = !IsRequired(PrinterAttribute.PrintScalingDefault) ? null : options.PrintScaling,
338-
PrintScalingSupported = !IsRequired(PrinterAttribute.PrintScalingSupported) ? null : [options.PrintScaling],
337+
PrintScalingDefault = !IsRequired(PrinterAttribute.PrintScalingDefault) ? null : options.PrintScaling.FirstOrDefault(),
338+
PrintScalingSupported = !IsRequired(PrinterAttribute.PrintScalingSupported) ? null : options.PrintScaling,
339339
PrinterUriSupported = !IsRequired(PrinterAttribute.PrinterUriSupported) ? null : [GetPrinterUrl()],
340340
UriAuthenticationSupported = !IsRequired(PrinterAttribute.UriAuthenticationSupported) ? null : [UriAuthentication.None],
341341
UriSecuritySupported = !IsRequired(PrinterAttribute.UriSecuritySupported) ? null : [GetUriSecuritySupported()],
342342
PrinterUpTime = !IsRequired(PrinterAttribute.PrinterUpTime) ? null : (int)(dateTimeOffsetProvider.UtcNow - _startTime).TotalSeconds,
343-
MediaDefault = !IsRequired(PrinterAttribute.MediaDefault) ? null : options.Media,
344-
MediaColDefault = !IsRequired(PrinterAttribute.MediaDefault) ? null : options.Media,
345-
MediaSupported = !IsRequired(PrinterAttribute.MediaSupported) ? null : [options.Media],
346-
SidesDefault = !IsRequired(PrinterAttribute.SidesDefault) ? null : options.Sides,
343+
MediaDefault = !IsRequired(PrinterAttribute.MediaDefault) ? null : options.Media.FirstOrDefault(),
344+
MediaColDefault = !IsRequired(PrinterAttribute.MediaDefault) ? null : options.Media.FirstOrDefault(),
345+
MediaSupported = !IsRequired(PrinterAttribute.MediaSupported) ? null : options.Media,
346+
SidesDefault = !IsRequired(PrinterAttribute.SidesDefault) ? null : options.Sides.FirstOrDefault(),
347347
SidesSupported = !IsRequired(PrinterAttribute.SidesSupported) ? null : Enum.GetValues(typeof(Sides)).Cast<Sides>().Where(x => x != Sides.Unsupported).ToArray(),
348348
PdlOverrideSupported = !IsRequired(PrinterAttribute.PdlOverrideSupported) ? null : "attempted",
349349
MultipleOperationTimeOut = !IsRequired(PrinterAttribute.MultipleOperationTimeOut) ? null : 120,
350350
FinishingsDefault = !IsRequired(PrinterAttribute.FinishingsDefault) ? null : options.Finishings,
351-
PrinterResolutionDefault = !IsRequired(PrinterAttribute.PrinterResolutionDefault) ? null : options.Resolution,
352-
PrinterResolutionSupported = !IsRequired(PrinterAttribute.PrinterResolutionSupported) ? null : [options.Resolution],
353-
PrintQualityDefault = !IsRequired(PrinterAttribute.PrintQualityDefault) ? null : options.PrintQuality,
354-
PrintQualitySupported = !IsRequired(PrinterAttribute.PrintQualitySupported) ? null : [options.PrintQuality],
351+
PrinterResolutionDefault = !IsRequired(PrinterAttribute.PrinterResolutionDefault) ? null : options.Resolution.FirstOrDefault(),
352+
PrinterResolutionSupported = !IsRequired(PrinterAttribute.PrinterResolutionSupported) ? null : [options.Resolution.FirstOrDefault()],
353+
PrintQualityDefault = !IsRequired(PrinterAttribute.PrintQualityDefault) ? null : options.PrintQuality.FirstOrDefault(),
354+
PrintQualitySupported = !IsRequired(PrinterAttribute.PrintQualitySupported) ? null : options.PrintQuality,
355355
JobPriorityDefault = !IsRequired(PrinterAttribute.JobPriorityDefault) ? null : options.JobPriority,
356356
JobPrioritySupported = !IsRequired(PrinterAttribute.JobPrioritySupported) ? null : options.JobPriority,
357357
CopiesDefault = !IsRequired(PrinterAttribute.CopiesDefault) ? null : options.Copies,
@@ -445,10 +445,10 @@ private JobAttributes GetJobAttributes(PrinterJob job, string[]? requestedAttrib
445445
JobStateReasons = !IsRequired(JobAttribute.JobState) ? null : [JobStateReason.None],
446446
DateTimeAtCreation = !IsRequired(JobAttribute.DateTimeAtCreation) ? null : job.CreatedDateTime,
447447
TimeAtCreation = !IsRequired(JobAttribute.TimeAtCreation) ? null : (int)(job.CreatedDateTime - _startTime).TotalSeconds,
448-
DateTimeAtProcessing = !IsRequired(JobAttribute.DateTimeAtProcessing) ? null : job.ProcessingDateTime,
449-
TimeAtProcessing = !IsRequired(JobAttribute.TimeAtProcessing) || !job.ProcessingDateTime.HasValue ? null : (int)(job.ProcessingDateTime.Value - _startTime).TotalSeconds,
450-
DateTimeAtCompleted = !IsRequired(JobAttribute.DateTimeAtCompleted) ? null : job.CompletedDateTime,
451-
TimeAtCompleted = !IsRequired(JobAttribute.TimeAtCompleted) || !job.CompletedDateTime.HasValue ? null : (int)(job.CompletedDateTime.Value - _startTime).TotalSeconds,
448+
DateTimeAtProcessing = !IsRequired(JobAttribute.DateTimeAtProcessing) ? null : job.ProcessingDateTime ?? DateTimeOffset.MinValue,
449+
TimeAtProcessing = !IsRequired(JobAttribute.TimeAtProcessing) ? null : job.ProcessingDateTime.HasValue ? (int)(job.ProcessingDateTime.Value - _startTime).TotalSeconds : -1,
450+
DateTimeAtCompleted = !IsRequired(JobAttribute.DateTimeAtCompleted) ? null : job.CompletedDateTime ?? DateTimeOffset.MinValue,
451+
TimeAtCompleted = !IsRequired(JobAttribute.TimeAtCompleted) ? null : job.CompletedDateTime.HasValue ? (int)(job.CompletedDateTime.Value - _startTime).TotalSeconds : -1,
452452
Compression = !IsRequired(JobAttribute.Compression) ? null : documentAttributes?.Compression,
453453
DocumentFormat = !IsRequired(JobAttribute.DocumentFormat) ? null : documentAttributes?.DocumentFormat,
454454
DocumentName = !IsRequired(JobAttribute.DocumentName) ? null : documentAttributes?.DocumentName,
@@ -614,12 +614,12 @@ private string GetPrinterMoreInfo()
614614
private void FillWithDefaultValues(int jobId, NewJobAttributes attributes)
615615
{
616616
var options = printerOptions.Value;
617-
attributes.PrintScaling ??= options.PrintScaling;
618-
attributes.Sides ??= options.Sides;
619-
attributes.Media ??= options.Media;
620-
attributes.PrinterResolution ??= options.Resolution;
617+
attributes.PrintScaling ??= options.PrintScaling.FirstOrDefault();
618+
attributes.Sides ??= options.Sides.FirstOrDefault();
619+
attributes.Media ??= options.Media.FirstOrDefault();
620+
attributes.PrinterResolution ??= options.Resolution.FirstOrDefault();
621621
attributes.Finishings ??= options.Finishings;
622-
attributes.PrintQuality ??= options.PrintQuality;
622+
attributes.PrintQuality ??= options.PrintQuality.FirstOrDefault();
623623
attributes.JobPriority ??= options.JobPriority;
624624
attributes.Copies ??= options.Copies;
625625
attributes.OrientationRequested ??= options.Orientation;

SharpIppNextServer/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"Logging": {
33
"LogLevel": {
44
"Default": "Information",
5-
"Microsoft.Hosting.Lifetime": "Warning",
5+
"Microsoft.Hosting.Lifetime": "Information",
66
"Microsoft.AspNetCore": "Warning",
77
"Quartz": "Warning"
88
}

0 commit comments

Comments
 (0)