public object UploadToCrm(Stream fileStream, string filename, string contentType, CrmContactData entity) { if (entity == null) { throw new ArgumentNullException("entity"); } var request = new RestRequest("crm/{entityType}/{entityId}/files/upload.json", Method.POST); request.AddUrlSegment("entityType", entity.EntityTypeName) .AddUrlSegment("entityId", entity.Id.ToString()) .AddParameter("storeOriginalFileFlag", false); request.AddFile(filename, fileStream.CopyTo, filename, fileStream.Length, contentType); var response = Execute(request); if (response.ResponseStatus != ResponseStatus.Completed || (response.StatusCode != HttpStatusCode.Created && response.StatusCode != HttpStatusCode.OK)) { throw new ApiHelperException("Upload file to crm failed.", response.StatusCode, response.Content); } var json = JObject.Parse(response.Content); var id = json["response"]["id"]; return(id); }
public void AddToCrmHistory(MailMessageData message, CrmContactData entity, IEnumerable <object> fileIds) { var request = new RestRequest("crm/history.json", Method.POST); var contentJson = string.Format("{{ message_id : {0} }}", message.Id); request.AddParameter("content", contentJson) .AddParameter("categoryId", MAIL_CRM_HISTORY_CATEGORY) .AddParameter("created", new ApiDateTime(message.Date)); var crmEntityType = entity.EntityTypeName; if (crmEntityType == CrmContactData.CrmEntityTypeNames.CONTACT) { request.AddParameter("contactId", entity.Id) .AddParameter("entityId", 0); } else { if (crmEntityType != CrmContactData.CrmEntityTypeNames.CASE && crmEntityType != CrmContactData.CrmEntityTypeNames.OPPORTUNITY) { throw new ArgumentException(String.Format("Invalid crm entity type: {0}", crmEntityType)); } request.AddParameter("contactId", 0) .AddParameter("entityId", entity.Id) .AddParameter("entityType", crmEntityType); } if (fileIds != null) { fileIds.ToList().ForEach( id => request.AddParameter("fileId[]", id)); } var response = Execute(request); if (response.ResponseStatus == ResponseStatus.Completed && (response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.OK)) { return; } if (response.ErrorException is ApiHelperException) { throw response.ErrorException; } throw new ApiHelperException("Add message to crm history failed.", response.StatusCode, response.Content); }