/// <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; }
/// <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; }
/// <summary> /// Creates a new instance of <see cref="ContactViewModel"/>. /// </summary> /// <param name="contact">The contact.</param> public ContactViewModel(Contact contact) { _contact = contact; }