Skip to content

Commit 03174ac

Browse files
committed
ECC code mismatch
1 parent 283a458 commit 03174ac

File tree

6 files changed

+13
-11
lines changed

6 files changed

+13
-11
lines changed

QRCoder/PayloadGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static class PayloadGenerator
1515
public abstract class Payload
1616
{
1717
public virtual int Version { get { return -1; } }
18-
public virtual QRCodeGenerator.ECCLevel EccLevel { get { return QRCodeGenerator.ECCLevel.M; } }
18+
public virtual QRCodeGenerator.ECCLevel? EccLevel { get { return null; } } // null is default
1919
public virtual QRCodeGenerator.EciMode EciMode { get { return QRCodeGenerator.EciMode.Default; } }
2020
public abstract override string ToString();
2121
}
@@ -2380,7 +2380,7 @@ public class SlovenianUpnQr : Payload
23802380
private string _recipientSiReference = "";
23812381

23822382
public override int Version { get { return 15; } }
2383-
public override QRCodeGenerator.ECCLevel EccLevel { get { return QRCodeGenerator.ECCLevel.M; } }
2383+
public override QRCodeGenerator.ECCLevel? EccLevel { get { return QRCodeGenerator.ECCLevel.M; } }
23842384
public override QRCodeGenerator.EciMode EciMode { get { return QRCodeGenerator.EciMode.Iso8859_2; } }
23852385

23862386
private string LimitLength(string value, int maxLength)

QRCoder/QRCodeGenerator.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public QRCodeData CreateQrCode(byte[] binaryData, ECCLevel eccLevel)
9393
/// <returns>Returns the raw QR code data which can be used for rendering.</returns>
9494
public static QRCodeData GenerateQrCode(PayloadGenerator.Payload payload)
9595
{
96-
return GenerateQrCode(payload.ToString(), payload.EccLevel, false, false, payload.EciMode, payload.Version);
96+
return GenerateQrCode(payload.ToString(), payload.EccLevel ?? ECCLevel.M, false, false, payload.EciMode, payload.Version);
9797
}
9898

9999
/// <summary>
@@ -105,6 +105,8 @@ public static QRCodeData GenerateQrCode(PayloadGenerator.Payload payload)
105105
/// <returns>Returns the raw QR code data which can be used for rendering.</returns>
106106
public static QRCodeData GenerateQrCode(PayloadGenerator.Payload payload, ECCLevel eccLevel)
107107
{
108+
if (payload.EccLevel.HasValue && eccLevel != payload.EccLevel.Value)
109+
throw new ArgumentException($"The provided payload requires a ECC level of {eccLevel}.", nameof(eccLevel));
108110
return GenerateQrCode(payload.ToString(), eccLevel, false, false, payload.EciMode, payload.Version);
109111
}
110112

QRCoderApiTests/net35+net40+net50+net50-windows+netstandard20/QRCoder.approved.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ namespace QRCoder
530530
public abstract class Payload
531531
{
532532
protected Payload() { }
533-
public virtual QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
533+
public virtual QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
534534
public virtual QRCoder.QRCodeGenerator.EciMode EciMode { get; }
535535
public virtual int Version { get; }
536536
public abstract override string ToString() { }
@@ -697,7 +697,7 @@ namespace QRCoder
697697
{
698698
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, string recipientSiModel = "SI00", string recipientSiReference = "", string code = "OTHR") { }
699699
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, System.DateTime? deadline, string recipientSiModel = "SI99", string recipientSiReference = "", string code = "OTHR") { }
700-
public override QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
700+
public override QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
701701
public override QRCoder.QRCodeGenerator.EciMode EciMode { get; }
702702
public override int Version { get; }
703703
public override string ToString() { }

QRCoderApiTests/net60-windows/QRCoder.approved.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ namespace QRCoder
535535
public abstract class Payload
536536
{
537537
protected Payload() { }
538-
public virtual QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
538+
public virtual QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
539539
public virtual QRCoder.QRCodeGenerator.EciMode EciMode { get; }
540540
public virtual int Version { get; }
541541
public abstract override string ToString() { }
@@ -702,7 +702,7 @@ namespace QRCoder
702702
{
703703
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, string recipientSiModel = "SI00", string recipientSiReference = "", string code = "OTHR") { }
704704
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, System.DateTime? deadline, string recipientSiModel = "SI99", string recipientSiReference = "", string code = "OTHR") { }
705-
public override QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
705+
public override QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
706706
public override QRCoder.QRCodeGenerator.EciMode EciMode { get; }
707707
public override int Version { get; }
708708
public override string ToString() { }

QRCoderApiTests/net60/QRCoder.approved.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ namespace QRCoder
493493
public abstract class Payload
494494
{
495495
protected Payload() { }
496-
public virtual QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
496+
public virtual QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
497497
public virtual QRCoder.QRCodeGenerator.EciMode EciMode { get; }
498498
public virtual int Version { get; }
499499
public abstract override string ToString() { }
@@ -660,7 +660,7 @@ namespace QRCoder
660660
{
661661
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, string recipientSiModel = "SI00", string recipientSiReference = "", string code = "OTHR") { }
662662
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, System.DateTime? deadline, string recipientSiModel = "SI99", string recipientSiReference = "", string code = "OTHR") { }
663-
public override QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
663+
public override QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
664664
public override QRCoder.QRCodeGenerator.EciMode EciMode { get; }
665665
public override int Version { get; }
666666
public override string ToString() { }

QRCoderApiTests/netstandard13/QRCoder.approved.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ namespace QRCoder
473473
public abstract class Payload
474474
{
475475
protected Payload() { }
476-
public virtual QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
476+
public virtual QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
477477
public virtual QRCoder.QRCodeGenerator.EciMode EciMode { get; }
478478
public virtual int Version { get; }
479479
public abstract override string ToString() { }
@@ -640,7 +640,7 @@ namespace QRCoder
640640
{
641641
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, string recipientSiModel = "SI00", string recipientSiReference = "", string code = "OTHR") { }
642642
public SlovenianUpnQr(string payerName, string payerAddress, string payerPlace, string recipientName, string recipientAddress, string recipientPlace, string recipientIban, string description, double amount, System.DateTime? deadline, string recipientSiModel = "SI99", string recipientSiReference = "", string code = "OTHR") { }
643-
public override QRCoder.QRCodeGenerator.ECCLevel EccLevel { get; }
643+
public override QRCoder.QRCodeGenerator.ECCLevel? EccLevel { get; }
644644
public override QRCoder.QRCodeGenerator.EciMode EciMode { get; }
645645
public override int Version { get; }
646646
public override string ToString() { }

0 commit comments

Comments
 (0)