public void Constructor()
        {
            vCardEmailAddress email = new vCardEmailAddress();

            Assert.IsEmpty(
                email.Address,
                "The Address property should default to String.Empty.");
        }
Exemple #2
0
 private void SetSummaryValue(StateTextBox valueLabel, vCardEmailAddress email)
 {
     valueLabel.Text = string.Empty;
     if (email != null)
     {
         SetSummaryValue(valueLabel, email.Address);
     }
 }
        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);
        }
Exemple #4
0
        /// <summary>
        /// Utility method to convert email information from the vCard library to a
        /// WinRT ContactEmail instance.
        /// No 1:1 matching is possible between both classes, the method tries to
        /// keep the conversion as accurate as possible.
        /// </summary>
        /// <param name="email">Email information from the vCard library.</param>
        /// <returns>The email information from the vCard library converted to a
        /// WinRT ContactEmail instance.</returns>
        private ContactEmail ConvertVcardToEmail(vCardEmailAddress email)
        {
            var ce = new ContactEmail
            {
                Address = email.Address,
                Kind    = ContactEmailKind.Other // No useful types supported by vCard library
            };

            return(ce);
        }
        public static Email ConvertEmail(vCardEmailAddress x)
        {
            var model = new Email
            {
                EmailAddress = x.Address,
                Type         = EmailType.Smtp
            };

            return(model);
        }
        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_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 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.");
        }
Exemple #10
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);

        }
Exemple #12
0
 /// <summary>
 /// Utility method to convert email information from the vCard library to a
 /// WinRT ContactEmail instance.
 /// No 1:1 matching is possible between both classes, the method tries to
 /// keep the conversion as accurate as possible.
 /// </summary>
 /// <param name="email">Email information from the vCard library.</param>
 /// <returns>The email information from the vCard library converted to a 
 /// WinRT ContactEmail instance.</returns>
 private ContactEmail ConvertVcardToEmail(vCardEmailAddress email)
 {
     var ce = new ContactEmail
     {
         Address = email.Address,
         Kind = ContactEmailKind.Other   // No useful types supported by vCard library
     };
     return ce;
 }
Exemple #13
0
        /// <summary>
        /// Parses a vCard contact
        /// </summary>
        /// <param name="vCard"></param>
        /// <returns></returns>
        private static Contact ParseVCard(vCard vCard)
        {
            Contact contact = new Contact(false);

            contact.ID = vCard.UniqueId;

            if (contact.ID == string.Empty)
            {
                contact.ID = IDGenerator.GenerateID();
            }

            #region Name

            {
                Name name = Name.TryParse(vCard.FormattedName);

                if (name == null)
                {
                    name = new Name();
                }

                if (vCard.GivenName != string.Empty)
                {
                    name.FirstName = vCard.GivenName;
                }

                if (vCard.AdditionalNames != string.Empty)
                {
                    name.MiddleName = vCard.AdditionalNames;
                }

                if (vCard.FamilyName != string.Empty)
                {
                    name.LastName = vCard.FamilyName;
                }

                if (vCard.NamePrefix != string.Empty)
                {
                    name.Title = vCard.NamePrefix;
                }

                if (vCard.NameSuffix != string.Empty)
                {
                    name.Suffix = vCard.NameSuffix;
                }

                contact.Name = name;
            }

            #endregion

            #region Delivery Address

            {
                vCardDeliveryAddressCollection vAddresses = vCard.DeliveryAddresses;
                int       count     = vAddresses.Count;
                Address[] addresses = new Address[count];

                for (int i = 0; i < count; i++)
                {
                    vCardDeliveryAddress vAddress = vAddresses[i];
                    Address address = new Address();

                    address.City    = vAddress.City;
                    address.Country = vAddress.Country;
                    address.State   = vAddress.Region;
                    address.Street  = vAddress.Street.TrimEnd(',');
                    address.ZIP     = vAddress.PostalCode;
                    address.Type    = vAddress.AddressType.ToString();

                    addresses[i] = address;
                }

                contact.Addresses = addresses;
            }

            #endregion

            #region Email Address

            {
                vCardEmailAddressCollection vEmails = vCard.EmailAddresses;
                int     count  = vEmails.Count;
                Email[] emails = new Email[count];

                for (int i = 0; i < count; i++)
                {
                    vCardEmailAddress vEmail = vEmails[i];
                    Email             email  = new Email();

                    email.Address = vEmail.Address;
                    email.Type    = vEmail.EmailType.ToString();

                    emails[i] = email;
                }

                contact.Emails = emails;
            }

            #endregion

            #region Website

            {
                vCardWebsiteCollection vWebsites = vCard.Websites;
                int       count    = vWebsites.Count;
                Website[] websites = new Website[count];

                for (int i = 0; i < count; i++)
                {
                    vCardWebsite vWebsite = vWebsites[i];
                    Website      website  = new Website();

                    website.Url  = vWebsite.Url;
                    website.Type = vWebsite.WebsiteType.ToString();

                    websites[i] = website;
                }

                contact.Websites = websites;
            }

            #endregion

            #region Notes

            {
                FlowDocument notes = new FlowDocument();

                foreach (vCardNote each in vCard.Notes)
                {
                    Paragraph para = new Paragraph(new Run(each.Text));

                    if (each.Language != string.Empty)
                    {
                        try { para.Language = XmlLanguage.GetLanguage(each.Language); }
                        catch { }
                    }

                    notes.Blocks.Add(para);
                }

                contact.NotesDocument = notes;
            }

            #endregion

            #region Phone

            {
                vCardPhoneCollection vPhones = vCard.Phones;
                int           count          = vPhones.Count;
                PhoneNumber[] phones         = new PhoneNumber[count];

                for (int i = 0; i < count; i++)
                {
                    vCardPhone  vPhone = vPhones[i];
                    PhoneNumber phone  = new PhoneNumber();

                    phone.Number = vPhone.FullNumber;
                    phone.Type   = InsertSpaces(vPhone.PhoneType.ToString());

                    phones[i] = phone;
                }

                contact.PhoneNumbers = phones;
            }

            #endregion

            if (vCard.BirthDate.HasValue)
            {
                contact.SpecialDates = new SpecialDate[] { new SpecialDate("Birthday", vCard.BirthDate.Value) }
            }
            ;

            contact.Private = vCard.AccessClassification.HasFlag(vCardAccessClassification.Confidential) ||
                              vCard.AccessClassification.HasFlag(vCardAccessClassification.Private);
            contact.Work = new Work()
            {
                Company    = vCard.Organization,
                Department = vCard.Department,
                Office     = vCard.Office,
                Title      = vCard.Title
            };
            contact.Gender = (Gender)vCard.Gender;

            if (vCard.IMAddress != string.Empty)
            {
                contact.IM = new IM[] { new IM("IM", vCard.IMAddress) }
            }
            ;

            foreach (vCardPhoto photo in vCard.Photos)
            {
                if (photo.Url != null)
                {
                    try
                    {
                        photo.Fetch();
                        contact.encodeTile(photo.GetBytes());
                        //contact.Tile = Create96By96Tile(ConvertBytesToBitmapSource(photo.GetBytes()));
                        break;
                    }
                    catch { }
                }
                else
                {
                    contact.encodeTile(photo.GetBytes());
                    //contact.Tile = Create96By96Tile(ConvertBytesToBitmapSource(photo.GetBytes()));
                    break;
                }
            }

            return(contact);
        }