Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }