Manage Outlook Contacts MVC

public JsonResult addContact(int contactID)
        {
            string returnString = string.Empty;

            try
            {
                //getting contact detail from database
                var contactDetail = contactRepository.GetContactById(contactID);

                if (contactDetail.Email.Contains("@email."))
                {
                    // Deloitte staff email addresses are stored differently...!
                    returnString = "staff are already in outlook!";
                }
                else
                {
                    var company = clientRepository.GetAllClients().Where(c => c.Client_ID == contactDetail.Client_ID).ToList();

                    //creating new contact
                    Outlook.Application outlookApp = new Outlook.Application();
                    Outlook.ContactItem newContact = (Outlook.ContactItem)outlookApp.CreateItem(OlItemType.olContactItem);

                    //check if contact exist
                    NameSpace mapiNamespace = outlookApp.GetNamespace("MAPI");
                    MAPIFolder outlookContactList = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

                    bool isContactUnique = true;

                    for (int i = 1; i < outlookContactList.Items.Count + 1; i++)
                    {
                        var contact = outlookContactList.Items[i] as ContactItem;
                        if (contact.Email1Address == contactDetail.Email)
                        {
                            isContactUnique = false;
                            break;
                        }
                    }

                    if (isContactUnique == true)
                    {
                        newContact.FirstName = contactDetail.Name;
                        newContact.Email1Address = contactDetail.Email;
                        newContact.PrimaryTelephoneNumber = contactDetail.Phone;
                        newContact.MobileTelephoneNumber = contactDetail.Mobile;
                        newContact.BusinessFaxNumber = contactDetail.Fax;
                        newContact.JobTitle = contactDetail.Job_Title;
                        newContact.CompanyName = company[0].Name;
                        newContact.BusinessAddress = company[0].Address_1;
                        newContact.BusinessAddressStreet = company[0].Address_2;
                        newContact.BusinessAddressPostalCode = company[0].Address_5;
                        newContact.BusinessAddressCountry = company[0].Country;
                        newContact.Save();
                        newContact.Display(true);

                        returnString = "Contact added!";
                    }
                    else
                    {
                        returnString = "Contact already exists!";
                    }

                } // Not a deloitte member of staff

            }
            catch (System.Exception ex)
            {
                returnString = ex.Message;
            }

            return Json(returnString);
        }

No comments:

Post a Comment