public void Constructor()
        {

            vCardEmailAddress email = new vCardEmailAddress();

            Assert.IsEmpty(
                email.Address,
                "The Address property should default to String.Empty.");

        }
        public void Constructor_String()
        {

            vCardEmailAddress email =
                new vCardEmailAddress(TestEmailAddress);

            Assert.AreEqual(
                TestEmailAddress,
                email.Address,
                "The EmailAddress is incorrect.");

            Assert.AreEqual(
                vCardEmailAddressType.Internet,
                email.EmailType,
                "The EmailType should default to Internet.");

        }
        public void Constructor_String_EmailType()
        {

            // Create a non-Internet email address.  Note:
            // currently address formats are not validated.
            // This means any type can be designated in the
            // constructor.  However, this test may fail if
            // validation is implemented in the future.

            vCardEmailAddress email = new vCardEmailAddress(
                TestEmailAddress,
                vCardEmailAddressType.eWorld);

            Assert.AreEqual(
                TestEmailAddress,
                email.Address,
                "The EmailAddress is not correct.");

            Assert.AreEqual(
                vCardEmailAddressType.eWorld,
                email.EmailType,
                "The EmailType is not correct.");

        }
예제 #4
0
        /// <summary>
        ///     Asserts that two vCard email addresses are identical.
        /// </summary>
        public static void Equals(vCardEmailAddress e1, vCardEmailAddress e2)
        {

            Assert.AreEqual(
                e1.Address,
                e2.Address,
                "vCardEmailAddress.Address differs.");

            Assert.AreEqual(
                e1.EmailType,
                e2.EmailType,
                "vCardEmailAddress.EmailType differs.");

            Assert.AreEqual(
                e1.IsPreferred,
                e2.IsPreferred,
                "vCardEmailAddress.IsPreferred differs.");

            Assert.AreEqual(
                e1.ToString(),
                e2.ToString(),
                "vCardEmailAddress.ToString differs.");

        }
        /// <summary>
        ///     Reads an EMAIL property.
        /// </summary>
        private void ReadInto_EMAIL(vCard card, vCardProperty property)
        {

            vCardEmailAddress email = new vCardEmailAddress();

            // The email address is stored as the value of the property.
            // The format of the address depends on the type of email
            // address.  The current version of the library does not
            // perform any validation.

            email.Address = property.Value.ToString();

            // Loop through each subproperty and look for flags
            // that indicate the type of email address.

            foreach (vCardSubproperty subproperty in property.Subproperties)
            {

                switch (subproperty.Name.ToUpperInvariant())
                {

                    case "PREF":

                        // The PREF subproperty indicates the email
                        // address is the preferred email address to
                        // use when contacting the person.

                        email.IsPreferred = true;
                        break;

                    case "TYPE":

                        // The TYPE subproperty is new in vCard 3.0.
                        // It identifies the type and can also indicate
                        // the PREF attribute.

                        string[] typeValues =
                            subproperty.Value.Split(new char[] { ',' });

                        foreach (string typeValue in typeValues)
                        {
                            if (string.Compare("PREF", typeValue, StringComparison.OrdinalIgnoreCase) == 0)
                            {
                                email.IsPreferred = true;
                            }
                            else
                            {
                                vCardEmailAddressType? typeType =
                                    DecodeEmailAddressType(typeValue);

                                if (typeType.HasValue)
                                    email.EmailType = typeType.Value;
                            }

                        }
                        break;

                    default:

                        // All other subproperties are probably vCard 2.1
                        // subproperties.  This was before the email type
                        // was supposed to be specified with TYPE=VALUE.

                        vCardEmailAddressType? emailType =
                            DecodeEmailAddressType(subproperty.Name);

                        if (emailType.HasValue)
                            email.EmailType = emailType.Value;

                        break;

                }

            }

            card.EmailAddresses.Add(email);

        }
        public void ReadWriteProperty_Address()
        {

            // Make sure the Address property reads/writes.

            vCardEmailAddress email = new vCardEmailAddress();
            email.Address = TestEmailAddress;

            Assert.AreEqual(
                TestEmailAddress,
                email.Address,
                "The Address property is not working.");

        }
        public void ReadWriteProperty_IsPreferred()
        {

            // Make sure the EmailType property reads/writes

            vCardEmailAddress email = new vCardEmailAddress();
            email.IsPreferred = true;
            Assert.IsTrue(email.IsPreferred);

            email.IsPreferred = false;
            Assert.IsFalse(email.IsPreferred);

        }
        public void ReadWriteProperty_EmailType()
        {

            // Make sure the EmailType property reads/writes

            vCardEmailAddress email = new vCardEmailAddress();

            email.EmailType = vCardEmailAddressType.AttMail;
            Assert.AreEqual(vCardEmailAddressType.AttMail, email.EmailType);

        }
예제 #9
0
        private vCard GetVCardFromTr(HtmlNode personTr, HtmlNode detailsTr)
        {
            var ret = new vCard();
            var personTDs = personTr.SelectNodes("./td");
            ret.FamilyName = personTDs[0].InnerText;
            ret.GivenName = personTDs[1].InnerText;
            ret.DisplayName =
            ret.Office = personTDs[2].InnerText;
            var workPhone = getPhone(personTDs[3].InnerText);
            if (workPhone != null) ret.Phones.Add(new vCardPhone(workPhone, vCardPhoneTypes.WorkVoice));
            var mobile = getPhone(personTDs[4].InnerText);
            if (mobile != null) ret.Phones.Add(new vCardPhone(mobile, vCardPhoneTypes.CellularVoice));
            ret.Organization = "Bouvet";

            var detailsURL = personTDs[0].SelectSingleNode(".//a").GetAttributeValue("href", null);
            if (!string.IsNullOrEmpty(detailsURL))
            {
                var strippedURL =
                    detailsURL.Replace("javascript:fnPopUp('", "").Replace("', '60', '70')", "").Replace("amp;", "");
                var detailsHtml = GetHTML(strippedURL);
                var detailsDoc = new HtmlDocument();
                detailsDoc.LoadHtml(detailsHtml);

                // Displayname
                ret.DisplayName = detailsDoc.DocumentNode.SelectSingleNode("//title").InnerText;

                // Generelt

                // Fødselsdag
                var fodt = GetNextTDText(detailsDoc, "Fødselsdato");
                if (!string.IsNullOrEmpty(fodt))
                {
                    DateTime fDato;
                    if (DateTime.TryParse(fodt, out fDato))
                    {
                        ret.BirthDate = fDato;
                    }
                }
                // Title
                var title = GetNextTDText(detailsDoc, "Stilling");
                if (!string.IsNullOrEmpty(title))
                {
                    ret.Title = title;
                }
                // Email
                var email = detailsDoc.DocumentNode.SelectSingleNode("//a[@title='Send e-mail...&quot;>']");
                if (email != null)
                {
                    var workEmail = new vCardEmailAddress(email.InnerText, vCardEmailAddressType.Internet)
                                        {IsPreferred = true};
                    ret.EmailAddresses.Add(workEmail);
                }
                // MSN
                var msn = GetNextTDText(detailsDoc, "MSN");
                if (!string.IsNullOrEmpty(msn))
                {
                    ret.XMsn = msn;
                }

                // Kontor
                // Kontor-adresse
                var workAddr = GetAddress(detailsDoc, 0);
                if (workAddr != null)
                {
                    workAddr.IsHome = false;
                    ret.DeliveryAddresses.Add(workAddr);
                }

                // Privat
                // Tlf
                //var privTlf = getPhone(detailsDoc.DocumentNode.SelectSingleNode("//tr[td='Privat tlf']").SelectNodes("./td")[1].InnerText);
                var privTlf = getPhone(GetNextTDText(detailsDoc, "Privat tlf"));
                if (!string.IsNullOrEmpty(privTlf))
                {
                    ret.Phones.Add(new vCardPhone(privTlf, vCardPhoneTypes.HomeVoice));
                }
                // email
                var privEmail = GetNextTDText(detailsDoc, "Privat e-mail");
                if (!string.IsNullOrEmpty(privEmail))
                {
                    var privEmailAddr = new vCardEmailAddress(privEmail, vCardEmailAddressType.Internet)
                                            {IsPreferred = false};
                    ret.EmailAddresses.Add(privEmailAddr);
                }
                // Hjemme-adresse
                var homeAddr = GetAddress(detailsDoc, 1);
                if (homeAddr != null)
                {
                    homeAddr.IsHome = true;
                    ret.DeliveryAddresses.Add(homeAddr);
                }

                // Erfaring
                var erfaring = GetNextTDText(detailsDoc, "Bakgrunn");
                if (!string.IsNullOrEmpty(erfaring))
                {
                    ret.Notes.Add(new vCardNote(erfaring));
                }
                // Utdanning
                var utdanning = GetNextTDText(detailsDoc, "Utdannelse");
                if (!string.IsNullOrEmpty(utdanning))
                {
                    ret.Notes.Add(new vCardNote(utdanning));
                }
            }

            var img = detailsTr.SelectSingleNode(".//img");
            if (img != null)
            {
                var src = img.GetAttributeValue("src", null);
                if (src != null)
                {
                    using (var stream = GetStream(src))
                    {
                        ret.Photos.Add(new vCardPhoto(StreamHelper.ReadToEnd(stream)));
                    }
                }
            }
            return ret;
        }