Skip to content

Commit a52a22c

Browse files
authored
Merge pull request #325 from giccifelipe/master
Add organisation title into contact data card
2 parents e209962 + 7430482 commit a52a22c

File tree

2 files changed

+29
-13
lines changed

2 files changed

+29
-13
lines changed

QRCoder/PayloadGenerator.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ public class ContactData : Payload
383383
private readonly string lastname;
384384
private readonly string nickname;
385385
private readonly string org;
386+
private readonly string orgTitle;
386387
private readonly string phone;
387388
private readonly string mobilePhone;
388389
private readonly string workPhone;
@@ -421,12 +422,15 @@ public class ContactData : Payload
421422
/// <param name="country">Country</param>
422423
/// <param name="addressOrder">The address order format to use</param>
423424
/// <param name="note">Memo text / notes</param>
424-
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)
425+
/// <param name="org">Organisation/Company</param>
426+
/// <param name="orgTitle">Organisation/Company Title</param>
427+
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)
425428
{
426429
this.firstname = firstname;
427430
this.lastname = lastname;
428431
this.nickname = nickname;
429432
this.org = org;
433+
this.orgTitle = orgTitle;
430434
this.phone = phone;
431435
this.mobilePhone = mobilePhone;
432436
this.workPhone = workPhone;
@@ -456,6 +460,8 @@ public override string ToString()
456460
payload += $"N:{firstname}{lastname}\r\n";
457461
if (!string.IsNullOrEmpty(org))
458462
payload += $"ORG:{org}\r\n";
463+
if (!string.IsNullOrEmpty(orgTitle))
464+
payload += $"TITLE:{orgTitle}\r\n";
459465
if (!string.IsNullOrEmpty(phone))
460466
payload += $"TEL:{phone}\r\n";
461467
if (!string.IsNullOrEmpty(mobilePhone))
@@ -501,6 +507,10 @@ public override string ToString()
501507
{
502508
payload += $"ORG:" + org + "\r\n";
503509
}
510+
if (!string.IsNullOrEmpty(orgTitle))
511+
{
512+
payload += $"TITLE:" + orgTitle + "\r\n";
513+
}
504514
if (!string.IsNullOrEmpty(phone))
505515
{
506516
payload += $"TEL;";

QRCoderTests/PayloadGeneratorTests.cs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2747,6 +2747,7 @@ public void contactdata_generator_can_generate_payload_full_mecard()
27472747
var lastname = "Doe";
27482748
var nickname = "Johnny";
27492749
var org = "Johnny's Badass Programming";
2750+
var orgTitle = "Badass Manager";
27502751
var phone = "+4253212222";
27512752
var mobilePhone = "+421701234567";
27522753
var workPhone = "+4253211337";
@@ -2761,11 +2762,11 @@ public void contactdata_generator_can_generate_payload_full_mecard()
27612762
var note = "Badass programmer.";
27622763
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
27632764

2764-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
2765+
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);
27652766

27662767
generator
27672768
.ToString()
2768-
.ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:[email protected]\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");
2769+
.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:[email protected]\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");
27692770
}
27702771

27712772
[Fact]
@@ -2776,6 +2777,7 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
27762777
var lastname = "Doe";
27772778
var nickname = "Johnny";
27782779
var org = "Johnny's Badass Programming";
2780+
var orgTitle = "Badass Manager";
27792781
var phone = "+4253212222";
27802782
var mobilePhone = "+421701234567";
27812783
var workPhone = "+4253211337";
@@ -2790,11 +2792,11 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
27902792
var note = "Badass programmer.";
27912793
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
27922794

2793-
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);
2795+
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);
27942796

27952797
generator
27962798
.ToString()
2797-
.ShouldBe("MECARD+\r\nN:Doe, John\r\nORG:Johnny's Badass Programming\r\nTEL:+4253212222\r\nTEL:+421701234567\r\nTEL:+4253211337\r\nEMAIL:[email protected]\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");
2799+
.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:[email protected]\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");
27982800
}
27992801

28002802
[Fact]
@@ -2805,6 +2807,7 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
28052807
var lastname = "Doe";
28062808
var nickname = "Johnny";
28072809
var org = "Johnny's Badass Programming";
2810+
var orgTitle = "Badass Manager";
28082811
var phone = "+4253212222";
28092812
var mobilePhone = "+421701234567";
28102813
var workPhone = "+4253211337";
@@ -2819,11 +2822,11 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
28192822
var note = "Badass programmer.";
28202823
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard21;
28212824

2822-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
2825+
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);
28232826

28242827
generator
28252828
.ToString()
2826-
.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:[email protected]\r\nNOTE:Badass programmer.\r\nEND:VCARD");
2829+
.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:[email protected]\r\nNOTE:Badass programmer.\r\nEND:VCARD");
28272830
}
28282831

28292832
[Fact]
@@ -2834,6 +2837,7 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
28342837
var lastname = "Doe";
28352838
var nickname = "Johnny";
28362839
var org = "Johnny's Badass Programming";
2840+
var orgTitle = "Badass Manager";
28372841
var phone = "+4253212222";
28382842
var mobilePhone = "+421701234567";
28392843
var workPhone = "+4253211337";
@@ -2848,11 +2852,11 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
28482852
var note = "Badass programmer.";
28492853
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard3;
28502854

2851-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
2855+
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);
28522856

28532857
generator
28542858
.ToString()
2855-
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
2859+
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
28562860
}
28572861

28582862
[Fact]
@@ -2863,6 +2867,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
28632867
var lastname = "Doe";
28642868
var nickname = "Johnny";
28652869
var org = "Johnny's Badass Programming";
2870+
var orgTitle = "Badass Manager";
28662871
var phone = "+4253212222";
28672872
var mobilePhone = "+421701234567";
28682873
var workPhone = "+4253211337";
@@ -2877,11 +2882,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
28772882
var note = "Badass programmer.";
28782883
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
28792884

2880-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
2885+
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);
28812886

28822887
generator
28832888
.ToString()
2884-
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
2889+
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
28852890
}
28862891

28872892
[Fact]
@@ -2892,6 +2897,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
28922897
var lastname = "Doe";
28932898
var nickname = "Johnny";
28942899
var org = "Johnny's Badass Programming";
2900+
var orgTitle = "Badass Manager";
28952901
var phone = "+4253212222";
28962902
var mobilePhone = "+421701234567";
28972903
var workPhone = "+4253211337";
@@ -2906,11 +2912,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
29062912
var note = "Badass programmer.";
29072913
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
29082914

2909-
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);
2915+
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);
29102916

29112917
generator
29122918
.ToString()
2913-
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
2919+
.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:[email protected]\r\nNOTE:Badass programmer.\r\nNICKNAME:Johnny\r\nEND:VCARD");
29142920
}
29152921

29162922
[Fact]

0 commit comments

Comments
 (0)