public ToxyBusinessCards Parse() { string path = Context.Path; ToxyBusinessCards tbcs = new ToxyBusinessCards(); using (StreamReader sr = new StreamReader(path)) { while (!sr.EndOfStream) { var card = new vCard(sr); ToxyBusinessCard tbc = new ToxyBusinessCard(); tbc.Name = new ToxyName(); if (!string.IsNullOrEmpty(card.FormattedName)) tbc.Name.FullName = card.FormattedName; tbc.Name.FirstName = card.GivenName; tbc.Name.MiddleName = card.AdditionalNames; tbc.Name.LastName = card.FamilyName; tbc.ProductID = card.ProductId; foreach(var vSource in card.Sources) { tbc.Sources.Add(vSource.Uri.OriginalString); } tbc.Orgnization = card.Organization; tbc.Title = card.Title; tbc.Gender = card.Gender == vCardGender.Male ? GenderType.Male : GenderType.Female; if (card.Nicknames.Count > 0) { tbc.NickName = new ToxyName(); tbc.NickName.FullName = card.Nicknames[0]; } foreach (var dAddr in card.DeliveryAddresses) { var tAddr= new ToxyAddress(); tAddr.City = dAddr.City; tAddr.Street = dAddr.Street; tAddr.Country = dAddr.Country; tAddr.Region = dAddr.Region; tAddr.PostalCode = dAddr.PostalCode; tbc.Addresses.Add(tAddr); } foreach (var vphone in card.Phones) { tbc.Contacts.Add(new ToxyContact(vphone.PhoneType.ToString(), vphone.FullNumber)); } foreach (var vEmail in card.EmailAddresses) { tbc.Contacts.Add(new ToxyContact(vEmail.EmailType.ToString(), vEmail.Address)); } foreach (var vWebsite in card.Websites) { tbc.Contacts.Add(new ToxyContact("Url-"+ vWebsite.WebsiteType.ToString(), vWebsite.Url)); } tbcs.Cards.Add(tbc); } } return tbcs; }
public void TestRead2Cards() { string path = TestDataSample.GetVCardPath("RfcAuthors.vcf"); ParserContext context = new ParserContext(path); VCardDocumentParser parser = new VCardDocumentParser(context); var cards = parser.Parse(); Assert.AreEqual(2, cards.Cards.Count); ToxyBusinessCard tbc1 = cards.Cards[0]; Assert.AreEqual("Frank Dawson", tbc1.Name.FullName); Assert.AreEqual(1, tbc1.Addresses.Count); Assert.AreEqual(5, tbc1.Contacts.Count); Assert.AreEqual("6544 Battleford Drive;Raleigh;NC;27613-3502;U.S.A.", tbc1.Addresses[0].ToString()); int i = 0; Assert.AreEqual("+1-919-676-9515", tbc1.Contacts[i].Value); Assert.AreEqual("MessagingService, WorkVoice", tbc1.Contacts[i].Name); i++; Assert.AreEqual("+1-919-676-9564", tbc1.Contacts[i].Value); Assert.AreEqual("WorkFax", tbc1.Contacts[i].Name); i++; Assert.AreEqual("*****@*****.**", tbc1.Contacts[i].Value); Assert.AreEqual("Internet", tbc1.Contacts[i].Name); i++; Assert.AreEqual("*****@*****.**", tbc1.Contacts[i].Value); Assert.AreEqual("Internet", tbc1.Contacts[i].Name); i++; Assert.AreEqual("http://home.earthlink.net/~fdawson", tbc1.Contacts[i].Value); Assert.AreEqual("Url-Default", tbc1.Contacts[i].Name); Assert.AreEqual("Lotus Development Corporation", tbc1.Orgnization); //2ed guy ToxyBusinessCard tbc2 = cards.Cards[1]; Assert.AreEqual("Tim Howes", tbc2.Name.FullName); Assert.AreEqual("Netscape Communications Corp.", tbc2.Orgnization); Assert.AreEqual(1, tbc2.Addresses.Count); Assert.AreEqual(3, tbc2.Contacts.Count); Assert.AreEqual("501 E. Middlefield Rd.;Mountain View;CA;94043;U.S.A.", tbc2.Addresses[0].ToString()); i = 0; Assert.AreEqual("+1-415-937-3419", tbc2.Contacts[i].Value); Assert.AreEqual("MessagingService, WorkVoice", tbc2.Contacts[i].Name); i++; Assert.AreEqual("+1-415-528-4164", tbc2.Contacts[i].Value); Assert.AreEqual("WorkFax", tbc2.Contacts[i].Name); i++; Assert.AreEqual("*****@*****.**", tbc2.Contacts[i].Value); Assert.AreEqual("Internet", tbc2.Contacts[i].Name); }
public ToxyBusinessCards Parse() { if (!File.Exists(Context.Path)) { throw new FileNotFoundException("File " + Context.Path + " is not found"); } string path = Context.Path; ToxyBusinessCards tbcs = new ToxyBusinessCards(); using (StreamReader sr = new StreamReader(path)) { while (!sr.EndOfStream) { var card = new vCard(sr); ToxyBusinessCard tbc = new ToxyBusinessCard(); tbc.Name = new ToxyName(); if (!string.IsNullOrEmpty(card.FormattedName)) { tbc.Name.FullName = card.FormattedName; } tbc.Name.FirstName = card.GivenName; tbc.Name.MiddleName = card.AdditionalNames; tbc.Name.LastName = card.FamilyName; tbc.ProductID = card.ProductId; foreach (var vSource in card.Sources) { tbc.Sources.Add(vSource.Uri.OriginalString); } tbc.Orgnization = card.Organization; tbc.Title = card.Title; tbc.Gender = card.Gender == vCardGender.Male ? GenderType.Male : GenderType.Female; if (card.Nicknames.Count > 0) { tbc.NickName = new ToxyName(); tbc.NickName.FullName = card.Nicknames[0]; } foreach (var dAddr in card.DeliveryAddresses) { var tAddr = new ToxyAddress(); tAddr.City = dAddr.City; tAddr.Street = dAddr.Street; tAddr.Country = dAddr.Country; tAddr.Region = dAddr.Region; tAddr.PostalCode = dAddr.PostalCode; tbc.Addresses.Add(tAddr); } foreach (var vphone in card.Phones) { tbc.Contacts.Add(new ToxyContact(vphone.PhoneType.ToString(), vphone.FullNumber)); } foreach (var vEmail in card.EmailAddresses) { tbc.Contacts.Add(new ToxyContact(vEmail.EmailType.ToString(), vEmail.Address)); } foreach (var vWebsite in card.Websites) { tbc.Contacts.Add(new ToxyContact("Url-" + vWebsite.WebsiteType.ToString(), vWebsite.Url)); } tbcs.Cards.Add(tbc); } } return(tbcs); }