Пример #1
0
        /// <summary>
        /// Merges two contacts into single contact.
        /// </summary>
        /// <param name="firstContact">The first contact.</param>
        /// <param name="secondContact">The second contact.</param>
        /// <returns>the merged contact.</returns>
        public static Contact Merge(Contact firstContact, Contact secondContact)
        {
            Check.NotNull(firstContact, "firstContact");
            Check.NotNull(secondContact, "secondContact");

            if (firstContact.FullName != secondContact.FullName)
                throw new InvalidOperationException("Cannot merge contacts from different users!");

            Contact mergedContact = firstContact.Copy();
            mergedContact.Accounts = firstContact.Accounts | secondContact.Accounts;

            return mergedContact;
        }
Пример #2
0
        /// <summary>
        /// Separates contacts.
        /// </summary>
        /// <param name="contact">The contact</param>
        /// <returns>a list with contacts.</returns>
        public static IEnumerable<Contact> Separate(Contact contact)
        {
            var accounts = EnumHelper.GetFlags(contact.Accounts);
            if (accounts.Count() == 1)
                throw new InvalidOperationException("The contact has only one account");

            foreach (var account in accounts)
            {
                Contact newContact = contact.Copy();
                newContact.Accounts = (Accounts)account;

                yield return newContact;
            }
        }
        public void TestSerializeContactList()
        {
            ContactList contactList = new ContactList();

            Contact contact = new Contact
            {
                FirstName = "Dimitar",
                LastName = "Dimitrov",
                Accounts = Accounts.Facebook | Accounts.Google,
                Address = "Darmstadt, Germany",
                Phone = "+49 (6151) 16 - 23205",
                Email = "*****@*****.**"
            };
            contactList.Add(contact);

            contact = new Contact
            {
                FirstName = "David",
                LastName = "Gueswell",
                Accounts = Accounts.Facebook,
                Address = "Darmstadt, Germany",
                Phone = "+49 (6151) 16 - 23205",
                Email = "*****@*****.**"
            };
            contactList.Add(contact);

            contact = new Contact
            {
                FirstName = "Hans",
                LastName = "Becker",
                Accounts = Accounts.Facebook,
                Address = "Darmstadt, Germany",
                Phone = "+49 (6151) 16 - 23205",
                Email = "*****@*****.**"
            };
            contactList.Add(contact);

            // Serialization
            string serializedObject = Serializer.Serialize(contactList);

            Assert.IsFalse(string.IsNullOrEmpty(serializedObject));
            Assert.IsTrue(serializedObject.Contains("Dimitar"));
            Assert.IsTrue(serializedObject.Contains("David"));
            Assert.IsTrue(serializedObject.Contains("Hans"));

            var contactListDeserialized = Serializer.Deserialize<ContactList>(serializedObject);
            Assert.IsNotNull(contactListDeserialized);
            Assert.IsTrue(contactListDeserialized.Count == 3);
        }
        static Contact CreateContact()
        {
            Contact contact = new Contact
            {
                FirstName = "Dimitar",
                LastName = "Dimitrov",
                Accounts = Accounts.Skype,
                Email = "*****@*****.**",
                Address = "Kahl am Main, Germany",
                Phone = "+49 (7777) 77 - 77777",
                //PictureSource = new Uri("ms-appx:///ConTangibles.Infrastructure/Resources/Pictures/dimitar-dimitrov.jpg"),
            };

            return contact;
        }
Пример #5
0
 /// <summary>
 /// Creates a new instance of <see cref="ContactViewModel"/>.
 /// </summary>
 /// <param name="contact">The contact.</param>
 public ContactViewModel(Contact contact)
 {
     _contact = contact;
 }