public static Contact ConvertFromContactDB(ContactDB item)
        {
            Contact toReturn = new Contact ();
            toReturn.Blocked = item.Blocked;
            toReturn.ContactAccountID = item.ContactAccountID;
            toReturn.ContactID = item.ContactID;
            toReturn.ContactOAuths = item.ContactOAuths;
            toReturn.ContactUser = item.ContactUser;
            toReturn.Errors = item.Errors;
            toReturn.OwnerAccountID = item.OwnerAccountID;
            toReturn.DateCreated = item.DateCreated;
            toReturn.DateLastUpdated = item.DateLastUpdated;

            return toReturn;
        }
        /// <summary>
        /// Deletes the contact that belongs to the owner.
        /// </summary>
        /// <param name='contact'>
        /// The contact to delete.
        /// </param>
        public void DeleteContactForOwner(ContactDB contact)
        {
            lock (this.dbLock)
            {

                using (SQLiteConnection sqlCon = new SQLiteConnection(this.DBPath))
                {

                    sqlCon.Execute(WZConstants.DBClauseSyncOff);

                    sqlCon.BeginTransaction();

                    try
                    {

                        // Delete OAuths for the contact
                        sqlCon.Execute("DELETE FROM ContactOAuthDB WHERE ContactGuid=? AND " +
                            "ContactGuid IN (SELECT ContactGuid FROM ContactDB WHERE OwnerAccountGuid=?)",
                                       contact.ContactGuid, contact.OwnerAccountGuid);

                        // Delete the Contact object
                        sqlCon.Execute("DELETE FROM ContactDB WHERE ContactGuid=? AND OwnerAccountGuid=?",
                                       contact.ContactGuid, contact.OwnerAccountGuid);

                        //NOTE: No need to delete the user object for the contact (maybe).
                        // Delete the User object
            //                        sqlCon.Execute("DELETE FROM UserDB WHERE AccountGuid=?", contact.ContactUser.AccountID.ToString());

                        sqlCon.Commit();

                    } catch (Exception ex)
                    {

                        sqlCon.Rollback();

            #if(DEBUG)
                        Console.WriteLine("Error in DeleteContactForOwner! {0}--{1}", ex.Message, ex.StackTrace);
            #endif

                    }//end try catch

                }//end using sqlCon

            }//end lock
        }
        public static ContactDB ConvertFromContact(Contact item)
        {
            ContactDB toReturn = new ContactDB ();
            toReturn.Blocked = item.Blocked;
            toReturn.ContactAccountID = item.ContactAccountID;
            toReturn.ContactID = item.ContactID;

            if (null != item.ContactOAuths) {

                toReturn.ContactOAuthItems = new List<ContactOAuthDB> (item.ContactOAuths.Count);

                foreach (Contact.ContactOAuth eachOAuth in item.ContactOAuths)
                {
                    ContactOAuthDB contactOAuthDB = ContactOAuthDB.ConvertFromContactOAuth (eachOAuth);
                    contactOAuthDB.ContactGuid = toReturn.ContactGuid;
                    toReturn.ContactOAuthItems.Add (contactOAuthDB);
                }//end foreach

            }//end if

            toReturn.ContactUser = item.ContactUser;
            toReturn.Errors = item.Errors;
            toReturn.OwnerAccountID = item.OwnerAccountID;

            toReturn.DateCreated = item.DateCreated;
            toReturn.DateLastUpdated = item.DateLastUpdated;

            return toReturn;
        }