public BulkAPIResponse <ZCRMRecord> UpdateRecords(List <ZCRMRecord> records, List <string> trigger) { try { if (records.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } requestMethod = APIConstants.RequestMethod.PUT; urlPath = module.ApiName; JObject requestBodyObject = new JObject(); JArray dataArray = new JArray(); foreach (ZCRMRecord record in records) { if (record.GetFieldValue("id") == null || (long)record.GetFieldValue("id") <= 0) { throw new ZCRMException("Entity ID Must Not be null/empty for UpdateRecords operation."); } dataArray.Add(EntityAPIHandler.GetInstance(record).GetZCRMRecordAsJSON()); } requestBodyObject.Add(APIConstants.DATA, dataArray); if (trigger != null && trigger.Count > 0) { requestBodyObject.Add("trigger", JArray.FromObject(trigger)); } requestBody = requestBodyObject; BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> updatedRecords = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; int responseSize = responses.Count; for (int i = 0; i < responseSize; i++) { EntityResponse entityResponse = responses[i]; if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject recordDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord newRecord = records[i]; EntityAPIHandler.GetInstance(newRecord).SetRecordProperties(recordDetails); updatedRecords.Add(newRecord); entityResponse.Data = newRecord; } else { entityResponse.Data = null; } } response.BulkData = updatedRecords; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }
public BulkAPIResponse <ZCRMRecord> UpsertRecords(List <ZCRMRecord> records, List <string> trigger, string lar_id, List <string> duplicate_check_fields) { if (records.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } requestMethod = APIConstants.RequestMethod.POST; urlPath = module.ApiName + "/upsert"; JObject requestBodyObject = new JObject(); JArray dataArray = new JArray(); foreach (ZCRMRecord record in records) { JObject recordJSON = EntityAPIHandler.GetInstance(record).GetZCRMRecordAsJSON(); dataArray.Add(recordJSON); } requestBodyObject.Add(APIConstants.DATA, dataArray); if (trigger != null && trigger.Count > 0) { requestBodyObject.Add("trigger", JArray.FromObject(trigger)); } if (lar_id != null) { requestBodyObject.Add("lar_id", lar_id); } if (duplicate_check_fields != null && duplicate_check_fields.Count > 0) { requestBodyObject.Add("duplicate_check_fields", JArray.FromObject(duplicate_check_fields)); } requestBody = requestBodyObject; BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> upsertedRecords = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; int responseSize = responses.Count; for (int i = 0; i < responseSize; i++) { EntityResponse entityResponse = responses[i]; if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject recordDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord record = records[i]; EntityAPIHandler.GetInstance(record).SetRecordProperties(recordDetails); upsertedRecords.Add(record); entityResponse.Data = record; } else { entityResponse.Data = null; } } response.BulkData = upsertedRecords; return(response); }
public BulkAPIResponse <ZCRMRecord> MassUpdateRecords(List <long> entityIds, string fieldAPIName, Object value) { try { if (entityIds.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } //NOTE: null value is not converted to JObject of type null; requestMethod = APIConstants.RequestMethod.PUT; urlPath = module.ApiName; JObject requestBodyObject = new JObject(); JArray dataArray = new JArray(); foreach (long id in entityIds) { JObject updateJSON = new JObject { { fieldAPIName, value.ToString() }, { "id", Convert.ToString(id) } }; dataArray.Add(updateJSON); } requestBodyObject.Add(APIConstants.DATA, dataArray); requestBody = requestBodyObject; BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> updatedRecords = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; foreach (EntityResponse entityResponse in responses) { if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject recordDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord updatedRecord = ZCRMRecord.GetInstance(module.ApiName, Convert.ToInt64(recordDetails["id"])); EntityAPIHandler.GetInstance(updatedRecord).SetRecordProperties(recordDetails); updatedRecords.Add(updatedRecord); entityResponse.Data = updatedRecord; } else { entityResponse.Data = null; } } response.BulkData = updatedRecords; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }
public BulkAPIResponse <ZCRMRecord> GetRecords(long?cvId, string sortByField, CommonUtil.SortOrder?sortOrder, int page, int perPage, string modifiedSince, string isConverted, string isApproved, List <string> fields) { requestMethod = APIConstants.RequestMethod.GET; urlPath = module.ApiName; if (cvId != null) { requestQueryParams.Add("cvid", cvId.ToString()); } if (sortByField != null) { requestQueryParams.Add("sort_by", sortByField); } if (sortOrder != null) { requestQueryParams.Add("sort_order", sortOrder.ToString()); } requestQueryParams.Add(APIConstants.PAGE, page.ToString()); requestQueryParams.Add(APIConstants.PER_PAGE, perPage.ToString()); if (isApproved != null && isApproved != "") { requestQueryParams.Add("approved", isApproved); } if (isConverted != null && isConverted != "") { requestQueryParams.Add("converted", isConverted); } if (fields != null) { requestQueryParams.Add("fields", CommonUtil.CollectionToCommaDelimitedString(fields)); } if (modifiedSince != null && modifiedSince != "") { requestHeaders.Add("If-Modified-Since", modifiedSince); } BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> records = new List <ZCRMRecord>(); JObject responseJSON = response.ResponseJSON; if (responseJSON.ContainsKey(APIConstants.DATA)) { JArray recordsArray = (JArray)responseJSON[APIConstants.DATA]; foreach (JObject recordDetails in recordsArray) { ZCRMRecord record = ZCRMRecord.GetInstance(module.ApiName, Convert.ToInt64(recordDetails["id"])); EntityAPIHandler.GetInstance(record).SetRecordProperties(recordDetails); records.Add(record); } } response.BulkData = records; return(response); }
public BulkAPIResponse <ZCRMRecord> CreateRecords(List <ZCRMRecord> records) { if (records.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } requestMethod = APIConstants.RequestMethod.POST; urlPath = module.ApiName; JObject requestBodyObject = new JObject(); JArray dataArray = new JArray(); foreach (ZCRMRecord record in records) { if (record.EntityId == null) { dataArray.Add(EntityAPIHandler.GetInstance(record).GetZCRMRecordAsJSON()); } else { throw new ZCRMException("Entity ID Must be null/empty for CreateRecords operation."); } } requestBodyObject.Add(APIConstants.DATA, dataArray); requestBody = requestBodyObject; BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> createdRecords = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; int responseSize = responses.Count; for (int i = 0; i < responseSize; i++) { EntityResponse entityResponse = responses[i]; if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject recordDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord newRecord = records[i]; EntityAPIHandler.GetInstance(newRecord).SetRecordProperties(recordDetails); createdRecords.Add(newRecord); entityResponse.Data = newRecord; } else { entityResponse.Data = null; } } response.BulkData = createdRecords; return(response); }
public BulkAPIResponse <ZCRMRecord> RemoveTagsFromRecords(List <long> recordId, List <string> tagNames) { if (tagNames.Count > 10) { throw new ZCRMException(APIConstants.API_MAX_RECORD_TAGS_MSG); } if (recordId.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } try { string tagname = "", recordid = ""; requestMethod = APIConstants.RequestMethod.POST; foreach (long id in recordId) { recordid += id + ","; } foreach (string tag in tagNames) { tagname += tag + ","; } urlPath = "" + module.ApiName + "/actions/remove_tags?ids=" + recordid + "&tag_names=" + tagname + ""; BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> removetags = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; foreach (EntityResponse entityResponse in responses) { if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject tagDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord removeTag = ZCRMRecord.GetInstance(module.ApiName, Convert.ToInt64(tagDetails["id"])); EntityAPIHandler.GetInstance(removeTag).SetRecordProperties(tagDetails); removetags.Add(removeTag); entityResponse.Data = removeTag; } else { entityResponse.Data = null; } } response.BulkData = removetags; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }
private BulkAPIResponse <ZCRMRecord> SearchRecords(string searchKey, string searchValue, Dictionary <string, string> methodParams) { try { requestMethod = APIConstants.RequestMethod.GET; urlPath = module.ApiName + "/search"; requestQueryParams.Add(searchKey, searchValue); foreach (KeyValuePair <string, string> methodParam in methodParams) { requestQueryParams.Add(methodParam.Key, methodParam.Value); } BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> recordsList = new List <ZCRMRecord>(); JObject responseJSON = response.ResponseJSON; if (responseJSON.ContainsKey(APIConstants.DATA)) { JArray recordsArray = (JArray)responseJSON[APIConstants.DATA]; foreach (JObject recordDetails in recordsArray) { ZCRMRecord record = ZCRMRecord.GetInstance(module.ApiName, Convert.ToInt64(recordDetails["id"])); EntityAPIHandler.GetInstance(record).SetRecordProperties(recordDetails); recordsList.Add(record); } } response.BulkData = recordsList; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }
public BulkAPIResponse <ZCRMRecord> RemoveTagsFromRecords(List <long> recordId, List <string> tagNames) { if (tagNames.Count > 10) { throw new ZCRMException(APIConstants.API_MAX_RECORD_TAGS_MSG); } if (recordId.Count > 100) { throw new ZCRMException(APIConstants.API_MAX_RECORDS_MSG); } try { requestMethod = APIConstants.RequestMethod.POST; urlPath = "" + module.ApiName + "/actions/remove_tags"; requestQueryParams.Add("ids", string.Join(",", JToken.FromObject(recordId))); requestQueryParams.Add("tag_names", string.Join(",", JToken.FromObject(tagNames))); BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> recordList = new List <ZCRMRecord>(); List <EntityResponse> responses = response.BulkEntitiesResponse; foreach (EntityResponse entityResponse in responses) { if (entityResponse.Status.Equals(APIConstants.CODE_SUCCESS)) { JObject responseData = entityResponse.ResponseJSON; JObject recordDetails = (JObject)responseData[APIConstants.DETAILS]; ZCRMRecord removeRecordIns = ZCRMRecord.GetInstance(module.ApiName, Convert.ToInt64(recordDetails["id"])); EntityAPIHandler.GetInstance(removeRecordIns).SetRecordProperties(recordDetails); recordList.Add(removeRecordIns); entityResponse.Data = removeRecordIns; } else { entityResponse.Data = null; } } response.BulkData = recordList; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }
public BulkAPIResponse <ZCRMRecord> GetRecords(string sortByField, CommonUtil.SortOrder?sortOrder, int page, int perPage, string modifiedSince) { try { requestMethod = APIConstants.RequestMethod.GET; urlPath = parentRecord.ModuleAPIName + "/" + parentRecord.EntityId + "/" + relatedList.ApiName; if (sortByField != null) { requestQueryParams.Add("sort_by", sortByField); } if (sortOrder != null) { requestQueryParams.Add("sort_order", sortOrder.ToString()); } requestQueryParams.Add(APIConstants.PAGE, page.ToString()); requestQueryParams.Add(APIConstants.PER_PAGE, perPage.ToString()); if (modifiedSince != null && modifiedSince != "") { requestHeaders.Add("If-Modified-Since", modifiedSince); } BulkAPIResponse <ZCRMRecord> response = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMRecord>(); List <ZCRMRecord> recordsList = new List <ZCRMRecord>(); JObject responseJSON = response.ResponseJSON; if (responseJSON.ContainsKey(APIConstants.DATA)) { JArray recordsArray = (JArray)responseJSON[APIConstants.DATA]; foreach (JObject recordDetails in recordsArray) { ZCRMRecord record = ZCRMRecord.GetInstance(relatedList.ApiName, Convert.ToInt64(recordDetails["id"])); EntityAPIHandler.GetInstance(record).SetRecordProperties(recordDetails); recordsList.Add(record); } } response.BulkData = recordsList; return(response); } catch (Exception e) when(!(e is ZCRMException)) { ZCRMLogger.LogError(e); throw new ZCRMException(APIConstants.SDK_ERROR, e); } }