Skip to content

Commit 5729529

Browse files
authored
Merge pull request #276 from raganca/payload_contact_org
adding support for Org in PayloadGenerator.ContactData
2 parents 34beea6 + abdb844 commit 5729529

File tree

2 files changed

+27
-14
lines changed

2 files changed

+27
-14
lines changed

QRCoder/PayloadGenerator.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ public class ContactData : Payload
382382
private readonly string firstname;
383383
private readonly string lastname;
384384
private readonly string nickname;
385+
private readonly string org;
385386
private readonly string phone;
386387
private readonly string mobilePhone;
387388
private readonly string workPhone;
@@ -420,11 +421,12 @@ public class ContactData : Payload
420421
/// <param name="country">Country</param>
421422
/// <param name="addressOrder">The address order format to use</param>
422423
/// <param name="note">Memo text / notes</param>
423-
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)
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)
424425
{
425426
this.firstname = firstname;
426427
this.lastname = lastname;
427428
this.nickname = nickname;
429+
this.org = org;
428430
this.phone = phone;
429431
this.mobilePhone = mobilePhone;
430432
this.workPhone = workPhone;
@@ -452,6 +454,8 @@ public override string ToString()
452454
payload += $"N:{lastname}, {firstname}\r\n";
453455
else if (!string.IsNullOrEmpty(firstname) || !string.IsNullOrEmpty(lastname))
454456
payload += $"N:{firstname}{lastname}\r\n";
457+
if (!string.IsNullOrEmpty(org))
458+
payload += $"ORG:{org}\r\n";
455459
if (!string.IsNullOrEmpty(phone))
456460
payload += $"TEL:{phone}\r\n";
457461
if (!string.IsNullOrEmpty(mobilePhone))
@@ -493,7 +497,10 @@ public override string ToString()
493497

494498
payload += $"N:{(!string.IsNullOrEmpty(lastname) ? lastname : "")};{(!string.IsNullOrEmpty(firstname) ? firstname : "")};;;\r\n";
495499
payload += $"FN:{(!string.IsNullOrEmpty(firstname) ? firstname + " " : "")}{(!string.IsNullOrEmpty(lastname) ? lastname : "")}\r\n";
496-
500+
if (!string.IsNullOrEmpty(org))
501+
{
502+
payload += $"ORG:" + org + "\r\n";
503+
}
497504
if (!string.IsNullOrEmpty(phone))
498505
{
499506
payload += $"TEL;";

QRCoderTests/PayloadGeneratorTests.cs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2733,6 +2733,7 @@ public void contactdata_generator_can_generate_payload_full_mecard()
27332733
var firstname = "John";
27342734
var lastname = "Doe";
27352735
var nickname = "Johnny";
2736+
var org = "Johnny's Badass Programming";
27362737
var phone = "+4253212222";
27372738
var mobilePhone = "+421701234567";
27382739
var workPhone = "+4253211337";
@@ -2747,11 +2748,11 @@ public void contactdata_generator_can_generate_payload_full_mecard()
27472748
var note = "Badass programmer.";
27482749
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
27492750

2750-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note);
2751+
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
27512752

27522753
generator
27532754
.ToString()
2754-
.ShouldBe("MECARD+\r\nN:Doe, John\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");
2755+
.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");
27552756
}
27562757

27572758
[Fact]
@@ -2761,6 +2762,7 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
27612762
var firstname = "John";
27622763
var lastname = "Doe";
27632764
var nickname = "Johnny";
2765+
var org = "Johnny's Badass Programming";
27642766
var phone = "+4253212222";
27652767
var mobilePhone = "+421701234567";
27662768
var workPhone = "+4253211337";
@@ -2775,11 +2777,11 @@ public void contactdata_generator_can_generate_payload_full_mecard_reversed()
27752777
var note = "Badass programmer.";
27762778
var outputType = PayloadGenerator.ContactData.ContactOutputType.MeCard;
27772779

2778-
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);
2780+
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);
27792781

27802782
generator
27812783
.ToString()
2782-
.ShouldBe("MECARD+\r\nN:Doe, John\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");
2784+
.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");
27832785
}
27842786

27852787
[Fact]
@@ -2789,6 +2791,7 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
27892791
var firstname = "John";
27902792
var lastname = "Doe";
27912793
var nickname = "Johnny";
2794+
var org = "Johnny's Badass Programming";
27922795
var phone = "+4253212222";
27932796
var mobilePhone = "+421701234567";
27942797
var workPhone = "+4253211337";
@@ -2803,11 +2806,11 @@ public void contactdata_generator_can_generate_payload_full_vcard21()
28032806
var note = "Badass programmer.";
28042807
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard21;
28052808

2806-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note);
2809+
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
28072810

28082811
generator
28092812
.ToString()
2810-
.ShouldBe("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Doe;John;;;\r\nFN:John Doe\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");
2813+
.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");
28112814
}
28122815

28132816
[Fact]
@@ -2817,6 +2820,7 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
28172820
var firstname = "John";
28182821
var lastname = "Doe";
28192822
var nickname = "Johnny";
2823+
var org = "Johnny's Badass Programming";
28202824
var phone = "+4253212222";
28212825
var mobilePhone = "+421701234567";
28222826
var workPhone = "+4253211337";
@@ -2831,11 +2835,11 @@ public void contactdata_generator_can_generate_payload_full_vcard3()
28312835
var note = "Badass programmer.";
28322836
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard3;
28332837

2834-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note);
2838+
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
28352839

28362840
generator
28372841
.ToString()
2838-
.ShouldBe("BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;John;;;\r\nFN:John Doe\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");
2842+
.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");
28392843
}
28402844

28412845
[Fact]
@@ -2845,6 +2849,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
28452849
var firstname = "John";
28462850
var lastname = "Doe";
28472851
var nickname = "Johnny";
2852+
var org = "Johnny's Badass Programming";
28482853
var phone = "+4253212222";
28492854
var mobilePhone = "+421701234567";
28502855
var workPhone = "+4253211337";
@@ -2859,11 +2864,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4()
28592864
var note = "Badass programmer.";
28602865
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
28612866

2862-
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note);
2867+
var generator = new PayloadGenerator.ContactData(outputType, firstname, lastname, nickname, phone, mobilePhone, workPhone, email, birthday, website, street, houseNumber, city, zipCode, country, note, org: org);
28632868

28642869
generator
28652870
.ToString()
2866-
.ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\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");
2871+
.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");
28672872
}
28682873

28692874
[Fact]
@@ -2873,6 +2878,7 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
28732878
var firstname = "John";
28742879
var lastname = "Doe";
28752880
var nickname = "Johnny";
2881+
var org = "Johnny's Badass Programming";
28762882
var phone = "+4253212222";
28772883
var mobilePhone = "+421701234567";
28782884
var workPhone = "+4253211337";
@@ -2887,11 +2893,11 @@ public void contactdata_generator_can_generate_payload_full_vcard4_reverse()
28872893
var note = "Badass programmer.";
28882894
var outputType = PayloadGenerator.ContactData.ContactOutputType.VCard4;
28892895

2890-
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);
2896+
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);
28912897

28922898
generator
28932899
.ToString()
2894-
.ShouldBe("BEGIN:VCARD\r\nVERSION:4.0\r\nN:Doe;John;;;\r\nFN:John Doe\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");
2900+
.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");
28952901
}
28962902

28972903
[Fact]

0 commit comments

Comments
 (0)