diff --git a/QRCoder/PayloadGenerator.cs b/QRCoder/PayloadGenerator.cs
index 8f3bd0f8..397c4f77 100644
--- a/QRCoder/PayloadGenerator.cs
+++ b/QRCoder/PayloadGenerator.cs
@@ -383,6 +383,7 @@ public class ContactData : Payload
private readonly string lastname;
private readonly string nickname;
private readonly string org;
+ private readonly string orgTitle;
private readonly string phone;
private readonly string mobilePhone;
private readonly string workPhone;
@@ -421,12 +422,15 @@ public class ContactData : Payload
/// Country
/// The address order format to use
/// Memo text / notes
- public ContactData(ContactOutputType outputType, string firstname, string lastname, string nickname = null, string phone = null, string mobilePhone = null, string workPhone = null, string email = null, DateTime? birthday = null, string website = null, string street = null, string houseNumber = null, string city = null, string zipCode = null, string country = null, string note = null, string stateRegion = null, AddressOrder addressOrder = AddressOrder.Default, string org = null)
+ /// Organisation/Company
+ /// Organisation/Company Title
+ public ContactData(ContactOutputType outputType, string firstname, string lastname, string nickname = null, string phone = null, string mobilePhone = null, string workPhone = null, string email = null, DateTime? birthday = null, string website = null, string street = null, string houseNumber = null, string city = null, string zipCode = null, string country = null, string note = null, string stateRegion = null, AddressOrder addressOrder = AddressOrder.Default, string org = null, string orgTitle = null)
{
this.firstname = firstname;
this.lastname = lastname;
this.nickname = nickname;
this.org = org;
+ this.orgTitle = orgTitle;
this.phone = phone;
this.mobilePhone = mobilePhone;
this.workPhone = workPhone;
@@ -456,6 +460,8 @@ public override string ToString()
payload += $"N:{firstname}{lastname}\r\n";
if (!string.IsNullOrEmpty(org))
payload += $"ORG:{org}\r\n";
+ if (!string.IsNullOrEmpty(orgTitle))
+ payload += $"TITLE:{orgTitle}\r\n";
if (!string.IsNullOrEmpty(phone))
payload += $"TEL:{phone}\r\n";
if (!string.IsNullOrEmpty(mobilePhone))
@@ -501,6 +507,10 @@ public override string ToString()
{
payload += $"ORG:" + org + "\r\n";
}
+ if (!string.IsNullOrEmpty(orgTitle))
+ {
+ payload += $"TITLE:" + orgTitle + "\r\n";
+ }
if (!string.IsNullOrEmpty(phone))
{
payload += $"TEL;";
diff --git a/QRCoderTests/PayloadGeneratorTests.cs b/QRCoderTests/PayloadGeneratorTests.cs
index fc469062..f60da2b7 100644
--- a/QRCoderTests/PayloadGeneratorTests.cs
+++ b/QRCoderTests/PayloadGeneratorTests.cs
@@ -2747,6 +2747,7 @@ public void contactdata_generator_can_generate_payload_full_mecard()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2761,11 +2762,11 @@ public void contactdata_generator_can_generate_payload_full_mecard()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nBDAY:19700201\r\nADR:,,Long street 42,12345,Super-Town,,Starlight Country\r\nURL:http://john.doe\r\nNICKNAME:Johnny");
+ .ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nBDAY:19700201\r\nADR:,,Long street 42,12345,Super-Town,,Starlight Country\r\nURL:http://john.doe\r\nNICKNAME:Johnny");
}
[Fact]
@@ -2776,6 +2777,7 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2790,11 +2792,11 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, addressOrder: PayloadGenerator.ContactData.AddressOrder.Reversed, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, addressOrder: PayloadGenerator.ContactData.AddressOrder.Reversed, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nBDAY:19700201\r\nADR:,,42 Long street,Super-Town,,12345,Starlight Country\r\nURL:http://john.doe\r\nNICKNAME:Johnny");
+ .ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nBDAY:19700201\r\nADR:,,42 Long street,Super-Town,,12345,Starlight Country\r\nURL:http://john.doe\r\nNICKNAME:Johnny");
}
[Fact]
@@ -2805,6 +2807,7 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2819,11 +2822,11 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard21;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTEL;HOME;VOICE:+4253212222\r\nTEL;HOME;CELL:+421701234567\r\nTEL;WORK;VOICE:+4253211337\r\nADR;HOME;PREF:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nEND:VCARD");
+ .ShouldBe("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL;HOME;VOICE:+4253212222\r\nTEL;HOME;CELL:+421701234567\r\nTEL;WORK;VOICE:+4253211337\r\nADR;HOME;PREF:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nEND:VCARD");
}
[Fact]
@@ -2834,6 +2837,7 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2848,11 +2852,11 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard3;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTEL;TYPE=HOME,VOICE:+4253212222\r\nTEL;TYPE=HOME,CELL:+421701234567\r\nTEL;TYPE=WORK,VOICE:+4253211337\r\nADR;TYPE=HOME,PREF:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
+ .ShouldBe("BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL;TYPE=HOME,VOICE:+4253212222\r\nTEL;TYPE=HOME,CELL:+421701234567\r\nTEL;TYPE=WORK,VOICE:+4253211337\r\nADR;TYPE=HOME,PREF:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
}
[Fact]
@@ -2863,6 +2867,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2877,11 +2882,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTEL;TYPE=home,voice;VALUE=uri:tel:+4253212222\r\nTEL;TYPE=home,cell;VALUE=uri:tel:+421701234567\r\nTEL;TYPE=work,voice;VALUE=uri:tel:+4253211337\r\nADR;TYPE=home,pref:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
+ .ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL;TYPE=home,voice;VALUE=uri:tel:+4253212222\r\nTEL;TYPE=home,cell;VALUE=uri:tel:+421701234567\r\nTEL;TYPE=work,voice;VALUE=uri:tel:+4253211337\r\nADR;TYPE=home,pref:;;Long street 42;12345;Super-Town;;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
}
[Fact]
@@ -2892,6 +2897,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
var lastname = "Doe";
var nickname = "Johnny";
var org = "Johnny's Badass Programming";
+ var orgTitle = "Badass Manager";
var phone = "+4253212222";
var mobilePhone = "+421701234567";
var workPhone = "+4253211337";
@@ -2906,11 +2912,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
var note = "Badass programmer.";
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
- var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, addressOrder: PayloadGenerator.ContactData.AddressOrder.Reversed, org: org);
+ var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, addressOrder: PayloadGenerator.ContactData.AddressOrder.Reversed, org: org, orgTitle: orgTitle);
generator
.ToString()
- .ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTEL;TYPE=home,voice;VALUE=uri:tel:+4253212222\r\nTEL;TYPE=home,cell;VALUE=uri:tel:+421701234567\r\nTEL;TYPE=work,voice;VALUE=uri:tel:+4253211337\r\nADR;TYPE=home,pref:;;42 Long street;Super-Town;;12345;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
+ .ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\r\nORG:Johnny's Badass Programming\r\nTITLE:Badass Manager\r\nTEL;TYPE=home,voice;VALUE=uri:tel:+4253212222\r\nTEL;TYPE=home,cell;VALUE=uri:tel:+421701234567\r\nTEL;TYPE=work,voice;VALUE=uri:tel:+4253211337\r\nADR;TYPE=home,pref:;;42 Long street;Super-Town;;12345;Starlight Country\r\nBDAY:19700201\r\nURL:http://john.doe\r\nEMAIL:me@john.doe\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
}
[Fact]