/// <remarks/> public void createAsync(CreateContactRequest createRequest, object userState) { if ((this.createOperationCompleted == null)) { this.createOperationCompleted = new System.Threading.SendOrPostCallback(this.OncreateOperationCompleted); } this.InvokeAsync("create", new object[] { createRequest}, this.createOperationCompleted, userState); }
/// <summary> /// Create contact /// </summary> /// <param name="contactDatabaseId">contact database id</param> /// <param name="contactJsonList">contact list</param> /// <returns>contact id</returns> public String createContact(String contactDatabaseId, ArrayList contactJsonList) { if (logger.IsDebugEnabled) { logger.Debug("createContact:createContactcontactDatabaseId=" + contactDatabaseId ); } String result = OK_RESULT; ContactDatabaseFieldAction contactDatabaseFieldAction = new ContactDatabaseFieldAction(client, userName, password, (System.Net.WebProxy)contactService.Proxy); Hashtable contactFieldTable = contactDatabaseFieldAction.getContactDatabaseFields(contactDatabaseId); foreach (String str in contactJsonList) { int index = 0; if (!String.IsNullOrEmpty(str)) { String[] arrContact = str.Split(','); cn.tripolis.dialogue.contact.CreateContactRequest request = new cn.tripolis.dialogue.contact.CreateContactRequest { contactDatabaseId = contactDatabaseId, contactFields = new cn.tripolis.dialogue.contact.ContactFieldValue[arrContact.Length] }; foreach (String strContact in arrContact) { String[] arryFiled = strContact.Split(new[] { "#" }, StringSplitOptions.None); cn.tripolis.dialogue.contact.ContactFieldValue field = new cn.tripolis.dialogue.contact.ContactFieldValue { name = arryFiled[0].ToLower(), value = arryFiled[1] }; request.contactFields.SetValue(field, index++); //add contact filed to table if (contactFieldTable != null && !contactFieldTable.ContainsKey(field.name)) { contactDatabaseFieldAction.addContactField(contactDatabaseId, field.name, field.value); } } try { cn.tripolis.dialogue.contact.IDResponse response = contactService.create(request); result = response.id; if (logger.IsDebugEnabled) { logger.Debug("new contact id=" + result); } } catch (System.Web.Services.Protocols.SoapException ex) { // if the error is not caused by exist id, continue the loop if (!Util.isCodeExist(ex.Detail) || Util.getExistId(ex.Detail).Equals("")) { result = ex.Detail.InnerXml; if (logger.IsDebugEnabled) { logger.Debug("error happens in create contact, error is" + result); } continue; // throw new Exception(ex.Detail.InnerXml); } result = Util.getExistId(ex.Detail); if (logger.IsDebugEnabled) { logger.Debug("exist contact id=" + result); } } // addContactToGroup(result, contactGroupId); } } return result; }
/// <remarks/> public void createAsync(CreateContactRequest createRequest) { this.createAsync(createRequest, null); }