private void AddOutlookContact(Banckle.ContactDetails contact)
        {
            Outlook.ContactItem newContact = (Outlook.ContactItem)this.Application.CreateItem(Outlook.OlItemType.olContactItem);

            Banckle.Email[] emails = new Email[3];
            Banckle.Phone[] phone = new Banckle.Phone[2];
            Banckle.Address[] address = new Banckle.Address[3];
            try
            {
                newContact.FullName = String.IsNullOrWhiteSpace(contact.name) ? "" : contact.name;

                if (contact.emails.Length > 0)
                {
                    if (contact.emails.Length >= 3)
                    {
                        newContact.Email1AddressType = String.IsNullOrWhiteSpace(contact.emails[0].type) ? "" : contact.emails[0].type;
                        newContact.Email1Address = String.IsNullOrWhiteSpace(contact.emails[0].address) ? "" : contact.emails[0].address;

                        newContact.Email2AddressType = String.IsNullOrWhiteSpace(contact.emails[1].type) ? "" : contact.emails[1].type;
                        newContact.Email2Address = String.IsNullOrWhiteSpace(contact.emails[1].address) ? "" : contact.emails[1].address;

                        newContact.Email3AddressType = String.IsNullOrWhiteSpace(contact.emails[2].type) ? "" : contact.emails[2].type;
                        newContact.Email3Address = String.IsNullOrWhiteSpace(contact.emails[2].address) ? "" : contact.emails[2].address;

                    }
                    if (contact.emails.Length == 2)
                    {
                        newContact.Email1AddressType = String.IsNullOrWhiteSpace(contact.emails[0].type) ? "" : contact.emails[0].type;
                        newContact.Email1Address = String.IsNullOrWhiteSpace(contact.emails[0].address) ? "" : contact.emails[0].address;

                        newContact.Email2AddressType = String.IsNullOrWhiteSpace(contact.emails[1].type) ? "" : contact.emails[1].type;
                        newContact.Email2Address = String.IsNullOrWhiteSpace(contact.emails[1].address) ? "" : contact.emails[1].address;

                    }
                    if (contact.emails.Length == 1)
                    {
                        newContact.Email1AddressType = String.IsNullOrWhiteSpace(contact.emails[0].type) ? "" : contact.emails[0].type;
                        newContact.Email1Address = String.IsNullOrWhiteSpace(contact.emails[0].address) ? "" : contact.emails[0].address;

                    }
                }

                if (contact.phones.Length > 0)
                {
                    if (contact.phones.Length >= 2)
                    {
                        newContact.PrimaryTelephoneNumber = String.IsNullOrWhiteSpace(contact.phones[0].number) ? "" : contact.phones[0].number;
                        newContact.OtherTelephoneNumber = String.IsNullOrWhiteSpace(contact.phones[1].number) ? "" : contact.phones[1].number;
                    }
                    if (contact.phones.Length == 1)
                    {
                        newContact.PrimaryTelephoneNumber = String.IsNullOrWhiteSpace(contact.phones[0].number) ? "" : contact.phones[0].number;
                    }
                }

                if (contact.addresses.Length > 0)
                {
                    if (contact.addresses.Length >= 3)
                    {
                        newContact.MailingAddress = String.IsNullOrWhiteSpace(contact.addresses[0].building) ? "" : contact.addresses[0].building;
                        newContact.MailingAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[0].street) ? "" : contact.addresses[0].street;
                        newContact.MailingAddressCity = String.IsNullOrWhiteSpace(contact.addresses[0].city) ? "" : contact.addresses[0].city;
                        newContact.MailingAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[0].zip) ? "" : contact.addresses[0].zip;
                        newContact.MailingAddressState = String.IsNullOrWhiteSpace(contact.addresses[0].state) ? "" : contact.addresses[0].state;
                        newContact.MailingAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[0].country) ? "" : contact.addresses[0].country;

                        newContact.HomeAddress = String.IsNullOrWhiteSpace(contact.addresses[1].building) ? "" : contact.addresses[1].building;
                        newContact.HomeAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[1].street) ? "" : contact.addresses[1].street;
                        newContact.HomeAddressCity = String.IsNullOrWhiteSpace(contact.addresses[1].city) ? "" : contact.addresses[1].city;
                        newContact.HomeAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[1].zip) ? "" : contact.addresses[1].zip;
                        newContact.HomeAddressState = String.IsNullOrWhiteSpace(contact.addresses[1].state) ? "" : contact.addresses[1].state;
                        newContact.HomeAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[1].country) ? "" : contact.addresses[1].country;

                        newContact.OtherAddress = String.IsNullOrWhiteSpace(contact.addresses[2].building) ? "" : contact.addresses[2].building;
                        newContact.OtherAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[2].street) ? "" : contact.addresses[2].street;
                        newContact.OtherAddressCity = String.IsNullOrWhiteSpace(contact.addresses[2].city) ? "" : contact.addresses[2].city;
                        newContact.OtherAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[2].zip) ? "" : contact.addresses[2].zip;
                        newContact.OtherAddressState = String.IsNullOrWhiteSpace(contact.addresses[2].state) ? "" : contact.addresses[2].state;
                        newContact.OtherAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[2].country) ? "" : contact.addresses[2].country;
                    }
                    if (contact.addresses.Length == 2)
                    {
                        newContact.MailingAddress = String.IsNullOrWhiteSpace(contact.addresses[0].building) ? "" : contact.addresses[0].building;
                        newContact.MailingAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[0].street) ? "" : contact.addresses[0].street;
                        newContact.MailingAddressCity = String.IsNullOrWhiteSpace(contact.addresses[0].city) ? "" : contact.addresses[0].city;
                        newContact.MailingAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[0].zip) ? "" : contact.addresses[0].zip;
                        newContact.MailingAddressState = String.IsNullOrWhiteSpace(contact.addresses[0].state) ? "" : contact.addresses[0].state;
                        newContact.MailingAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[0].country) ? "" : contact.addresses[0].country;

                        newContact.HomeAddress = String.IsNullOrWhiteSpace(contact.addresses[1].building) ? "" : contact.addresses[1].building;
                        newContact.HomeAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[1].street) ? "" : contact.addresses[1].street;
                        newContact.HomeAddressCity = String.IsNullOrWhiteSpace(contact.addresses[1].city) ? "" : contact.addresses[1].city;
                        newContact.HomeAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[1].zip) ? "" : contact.addresses[1].zip;
                        newContact.HomeAddressState = String.IsNullOrWhiteSpace(contact.addresses[1].state) ? "" : contact.addresses[1].state;
                        newContact.HomeAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[1].country) ? "" : contact.addresses[1].country;
                    }
                    if (contact.addresses.Length == 1)
                    {
                        newContact.MailingAddress = String.IsNullOrWhiteSpace(contact.addresses[0].building) ? "" : contact.addresses[0].building;
                        newContact.MailingAddressStreet = String.IsNullOrWhiteSpace(contact.addresses[0].street) ? "" : contact.addresses[0].street;
                        newContact.MailingAddressCity = String.IsNullOrWhiteSpace(contact.addresses[0].city) ? "" : contact.addresses[0].city;
                        newContact.MailingAddressPostalCode = String.IsNullOrWhiteSpace(contact.addresses[0].zip) ? "" : contact.addresses[0].zip;
                        newContact.MailingAddressState = String.IsNullOrWhiteSpace(contact.addresses[0].state) ? "" : contact.addresses[0].state;
                        newContact.MailingAddressCountry = String.IsNullOrWhiteSpace(contact.addresses[0].country) ? "" : contact.addresses[0].country;
                    }
                }

                newContact.Save();
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("The new contact was not saved, because \r" + ex.Message + "\r" + ex.StackTrace);
            }
        }
        private Banckle.Person OutlookToBanckleContact(Outlook.ContactItem contact)
        {
            Banckle.Person person = new Banckle.Person();
            Banckle.Email[] emails = new Email[3];
            Banckle.Phone[] phone = new Banckle.Phone[15];
            Banckle.Address[] address = new Banckle.Address[4];

            try
            {
                person.birthDay = String.IsNullOrWhiteSpace(contact.Birthday.ToString("dd:MM:yyyy")) ? "" : contact.Birthday.ToString("dd:MM:yyyy");
                person.firstName = String.IsNullOrWhiteSpace(contact.FirstName) ? "" : contact.FirstName;
                person.lastName = String.IsNullOrEmpty(contact.LastName) ? "" : contact.LastName;
                //person.lastName = "";

                /*
                 * Emails
                 */

                emails[0] = new Email { type = "Primary", address = contact.Email1Address };
                emails[1] = new Email { type = "Secondary", address = contact.Email2Address };
                emails[2] = new Email { type = "Tertiary", address = contact.Email3Address };

                /*
                 * Phone Numbers
                 */

                phone[0] = new Phone { type = "Business2TelephoneNumber", number = contact.Business2TelephoneNumber };
                phone[1] = new Phone { type = "BusinessFaxNumber", number = contact.BusinessFaxNumber };
                phone[2] = new Phone { type = "BusinessTelephoneNumber", number = contact.BusinessTelephoneNumber };
                phone[3] = new Phone { type = "CallbackTelephoneNumber", number = contact.CallbackTelephoneNumber };
                phone[4] = new Phone { type = "CarTelephoneNumber", number = contact.CarTelephoneNumber };
                phone[5] = new Phone { type = "AssistantTelephoneNumber", number = contact.AssistantTelephoneNumber };
                phone[6] = new Phone { type = "CompanyMainTelephoneNumber", number = contact.CompanyMainTelephoneNumber };
                phone[7] = new Phone { type = "Home2TelephoneNumber", number = contact.Home2TelephoneNumber };
                phone[8] = new Phone { type = "HomeFaxNumber", number = contact.HomeFaxNumber };
                phone[9] = new Phone { type = "HomeTelephoneNumber", number = contact.HomeTelephoneNumber };
                phone[10] = new Phone { type = "MobileTelephoneNumber", number = contact.MobileTelephoneNumber };
                phone[11] = new Phone { type = "OtherFaxNumber", number = contact.OtherFaxNumber };
                phone[12] = new Phone { type = "OtherTelephoneNumber", number = contact.OtherTelephoneNumber };
                phone[13] = new Phone { type = "PrimaryTelephoneNumber", number = contact.PrimaryTelephoneNumber };
                phone[14] = new Phone { type = "RadioTelephoneNumber", number = contact.RadioTelephoneNumber };

                /*
                 * addresses
                 */

                address[0] = new Address { type = "Mailing", building = contact.MailingAddress, street = contact.MailingAddressStreet, city = contact.MailingAddressCity, state = contact.MailingAddressState, zip = contact.MailingAddressPostalCode, country = contact.MailingAddressCountry };
                address[1] = new Address { type = "Home", building = contact.HomeAddress, street = contact.HomeAddressStreet, city = contact.HomeAddressCity, state = contact.HomeAddressState, zip = contact.HomeAddressPostalCode, country = contact.HomeAddressCountry };
                address[2] = new Address { type = "Business", building = contact.BusinessAddress, street = contact.BusinessAddressStreet, city = contact.BusinessAddressCity, state = contact.BusinessAddressState, zip = contact.BusinessAddressPostalCode, country = contact.BusinessAddressCountry };
                address[3] = new Address { type = "Other", building = contact.OtherAddress, street = contact.OtherAddressStreet, city = contact.OtherAddressCity, state = contact.OtherAddressState, zip = contact.OtherAddressPostalCode, country = contact.OtherAddressCountry };

                person.emails = emails;
                person.phones = phone;
                person.addresses = address;

            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("The new contact was not saved, because \r" + ex.Message + "\r" + ex.StackTrace);
            }
            return person;
        }