/// <summary> /// Returns all the contacts associated with the specified property /// </summary> /// <param name="propName"></param> /// <returns></returns> private IContact[] GetContacts(string propName) { string sourceTable = GetSourceTable(propName); if (sourceTable == null) { return(null); } List <IContact> _contacts = new List <IContact>(); DataTable dt = _client.DataManager.Db.Tables[sourceTable]; Mailbox.ContactDataTable cdt = _client.DataManager.ContactTable; foreach (DataRow row in dt.Select("MessageID = " + ID)) { int id = (int)row["ContactID"]; foreach (Mailbox.ContactRow crow in cdt.Select("ID = " + id)) { _contacts.Add(new Contact(_client, crow.ID)); } } return(_contacts.ToArray()); }
internal IContact GetContactByEMail(string email) { lock (_lockObj) { Mailbox.ContactDataTable cdt = ContactTable; Mailbox.ContactRow[] rows = (Mailbox.ContactRow[])cdt.Select(String.Format("EMail like '{0}'", email)); if (rows.Length > 0) { return(new Contact(_client, rows[0].ID)); } } return(null); }
internal IContact NewContact(string firstName, string lastName, string email) { lock (_lockObj) { Mailbox.ContactDataTable contactTable = ContactTable; Mailbox.ContactRow row = contactTable.NewContactRow(); row.FirstName = firstName; row.LastName = lastName; row.EMail = email; contactTable.AddContactRow(row); contactTable.AcceptChanges(); return(new Contact(_client, row.ID)); } }