예제 #1
0
        public JObject GetZCRMTagAsJSON(ZCRMTag tagvalue)
        {
            JObject TagJSON = new JObject();

            if (tagvalue.Name != null)
            {
                TagJSON.Add("name", tagvalue.Name);
            }
            if (tagvalue.Id != 0)
            {
                TagJSON.Add("id", tagvalue.Id);
            }
            return(TagJSON);
        }
예제 #2
0
 public BulkAPIResponse <ZCRMTag> UpdateTags(List <ZCRMTag> tags)
 {
     if (tags.Count > 50)
     {
         throw new ZCRMException(APIConstants.API_MAX_TAGS_MSG);
     }
     try
     {
         requestMethod = APIConstants.RequestMethod.PUT;
         urlPath       = "settings/tags?module=" + module.ApiName + "";
         JObject requestBodyObject = new JObject();
         JArray  dataArray         = new JArray();
         foreach (ZCRMTag tag in tags)
         {
             dataArray.Add(GetZCRMTagAsJSON(tag));
         }
         requestBodyObject.Add(APIConstants.TAGS, dataArray);
         requestBody = requestBodyObject;
         BulkAPIResponse <ZCRMTag> response   = APIRequest.GetInstance(this).GetBulkAPIResponse <ZCRMTag>();
         List <ZCRMTag>            updatetags = new List <ZCRMTag>();
         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 tagDetails   = (JObject)responseData[APIConstants.DETAILS];
                 ZCRMTag updatedTag   = tags[i];
                 SetTagProperties(updatedTag, tagDetails);
                 updatetags.Add(updatedTag);
                 entityResponse.Data = updatedTag;
             }
             else
             {
                 entityResponse.Data = null;
             }
         }
         response.BulkData = updatetags;
         return(response);
     }
     catch (Exception e) when((e is ZCRMException))
     {
         ZCRMLogger.LogError(e);
         throw new ZCRMException(APIConstants.SDK_ERROR, e);
     }
 }
예제 #3
0
        public APIResponse GetTagCount(long?tagId)
        {
            try
            {
                requestMethod = APIConstants.RequestMethod.GET;
                urlPath       = "settings/tags/" + tagId + "/actions/records_count?module=" + module.ApiName + "";

                APIResponse response = APIRequest.GetInstance(this).GetAPIResponse();

                JObject responseJSON = response.ResponseJSON;
                ZCRMTag tag          = ZCRMTag.GetInstance(Convert.ToInt64(tagId));
                SetTagProperties(tag, responseJSON);
                response.Data = tag;
                return(response);
            }
            catch (Exception e) when(!(e is ZCRMException))
            {
                ZCRMLogger.LogError(e);
                throw new ZCRMException(APIConstants.SDK_ERROR, e);
            }
        }
예제 #4
0
 private void SetTagProperties(ZCRMTag tag, JObject tagDetails)
 {
     foreach (KeyValuePair <string, JToken> token in tagDetails)
     {
         string fieldAPIName = token.Key;
         if (fieldAPIName.Equals("id"))
         {
             tag.Id = Convert.ToInt64(token.Value);
         }
         if (fieldAPIName.Equals("name"))
         {
             tag.Name = Convert.ToString(token.Value);
         }
         else if (fieldAPIName.Equals("created_by") && token.Value.Type != JTokenType.Null)
         {
             JObject  createdObject = (JObject)token.Value;
             ZCRMUser createdUser   = ZCRMUser.GetInstance(Convert.ToInt64(createdObject["id"]), (string)createdObject["name"]);
             tag.CreatedBy = createdUser;
         }
         else if (fieldAPIName.Equals("modified_by") && token.Value.Type != JTokenType.Null)
         {
             JObject  modifiedObject = (JObject)token.Value;
             ZCRMUser modifiedBy     = ZCRMUser.GetInstance(Convert.ToInt64(modifiedObject["id"]), (string)modifiedObject["name"]);
             tag.ModifiedBy = modifiedBy;
         }
         else if (fieldAPIName.Equals("created_time"))
         {
             tag.CreatedTime = CommonUtil.removeEscaping((string)JsonConvert.SerializeObject(token.Value));
         }
         else if (fieldAPIName.Equals("modified_time"))
         {
             tag.ModifiedTime = CommonUtil.removeEscaping((string)JsonConvert.SerializeObject(token.Value));
         }
         else if (fieldAPIName.Equals("count"))
         {
             tag.Count = Convert.ToInt32(token.Value);
         }
     }
 }
예제 #5
0
        public void SetRecordProperties(JObject recordJSON, ZCRMRecord record)
        {
            foreach (KeyValuePair <string, JToken> token in recordJSON)
            {
                string fieldAPIName = token.Key;
                if (fieldAPIName.Equals("id"))
                {
                    record.EntityId = Convert.ToInt64(token.Value);
                }
                else if (fieldAPIName.Equals("Product_Details"))
                {
                    SetInventoryLineItems(token.Value);
                }
                else if (fieldAPIName.Equals("Participants"))
                {
                    SetParticipants(token.Value);
                }
                else if (fieldAPIName.Equals("Pricing_Details"))
                {
                    SetPriceDetails((JArray)token.Value);
                }
                else if (fieldAPIName.Equals("Created_By") && token.Value.Type != JTokenType.Null)
                {
                    JObject  createdObject = (JObject)token.Value;
                    ZCRMUser createdUser   = ZCRMUser.GetInstance(Convert.ToInt64(createdObject["id"]), (string)createdObject["name"]);
                    record.CreatedBy = createdUser;
                }
                else if (fieldAPIName.Equals("Modified_By") && token.Value.Type != JTokenType.Null)
                {
                    JObject  modifiedObject = (JObject)token.Value;
                    ZCRMUser modifiedBy     = ZCRMUser.GetInstance(Convert.ToInt64(modifiedObject["id"]), (string)modifiedObject["name"]);
                    record.ModifiedBy = modifiedBy;
                }
                else if (fieldAPIName.Equals("Created_Time"))
                {
                    record.CreatedTime = CommonUtil.removeEscaping((string)JsonConvert.SerializeObject(token.Value));
                }
                else if (fieldAPIName.Equals("Modified_Time"))
                {
                    record.ModifiedTime = CommonUtil.removeEscaping((string)JsonConvert.SerializeObject(token.Value));
                }
                else if (fieldAPIName.Equals("Owner") && token.Value.Type != JTokenType.Null)
                {
                    JObject  ownerObject = (JObject)token.Value;
                    ZCRMUser ownerUser   = ZCRMUser.GetInstance(Convert.ToInt64(ownerObject["id"]), (string)ownerObject["name"]);
                    record.Owner = ownerUser;
                }
                else if (fieldAPIName.Equals("Layout") && token.Value.Type != JTokenType.Null)
                {
                    JObject    layoutObject = (JObject)token.Value;
                    ZCRMLayout layout       = ZCRMLayout.GetInstance(Convert.ToInt64(layoutObject["id"]));
                    layout.Name = (string)layoutObject["name"];
                }
                else if (fieldAPIName.Equals("Handler") && token.Value.Type != JTokenType.Null)
                {
                    JObject  handlerObject = (JObject)token.Value;
                    ZCRMUser handler       = ZCRMUser.GetInstance(Convert.ToInt64(handlerObject["id"]), (string)handlerObject["name"]);
                    record.SetFieldValue(fieldAPIName, handler);
                }

                else if (fieldAPIName.Equals("Remind_At") && token.Value.Type != JTokenType.Null)
                {
                    if (token.Value is JObject)
                    {
                        JObject remindObject = (JObject)token.Value;
                        record.SetFieldValue(fieldAPIName, remindObject["ALARM"]);
                    }
                    else
                    {
                        record.SetFieldValue(fieldAPIName, token.Value);
                    }
                }
                else if (fieldAPIName.Equals("Recurring_Activity") && token.Value.Type != JTokenType.Null)
                {
                    JObject recurringActivityObject = (JObject)token.Value;
                    record.SetFieldValue(fieldAPIName, recurringActivityObject["RRULE"]);
                }
                else if (fieldAPIName.Equals("$line_tax") && token.Value.Type != JTokenType.Null)
                {
                    JArray taxDetails = (JArray)token.Value;
                    foreach (JObject taxDetail in taxDetails)
                    {
                        ZCRMTax tax = ZCRMTax.GetInstance((string)taxDetail["name"]);
                        tax.Percentage = Convert.ToDouble(taxDetail["percentage"]);
                        tax.Value      = Convert.ToDouble(taxDetail["value"]);
                        record.AddTax(tax);
                    }
                }
                else if (fieldAPIName.Equals("Tax") && token.Value.Type != JTokenType.Null)
                {
                    var taxNames = token.Value;
                    foreach (string data in taxNames)
                    {
                        ZCRMTax tax = ZCRMTax.GetInstance(data);
                        record.AddTax(tax);
                    }
                }
                else if (fieldAPIName.Equals("tags") && token.Value.Type != JTokenType.Null)
                {
                    JArray        jsonArray = (JArray)token.Value;
                    List <string> tags      = new List <string>();
                    foreach (string tag in jsonArray)
                    {
                        tags.Add(tag);
                    }
                    record.TagNames = tags;
                }
                else if (fieldAPIName.Equals("Tag") && token.Value.Type != JTokenType.Null)
                {
                    JArray jsonArray = (JArray)token.Value;
                    foreach (JObject tag in jsonArray)
                    {
                        ZCRMTag tagIns = ZCRMTag.GetInstance(Convert.ToInt64(tag.GetValue("id")));
                        tagIns.Name = tag.GetValue("name").ToString();
                        record.Tags.Add(tagIns);
                    }
                }
                else if (fieldAPIName.StartsWith("$", StringComparison.CurrentCulture))
                {
                    fieldAPIName = fieldAPIName.TrimStart('\\', '$');
                    if (APIConstants.PROPERTIES_AS_FILEDS.Contains(fieldAPIName))
                    {
                        record.SetFieldValue(fieldAPIName, token.Value);
                    }
                    else
                    {
                        record.SetProperty(fieldAPIName, token.Value);
                    }
                }
                else if (token.Value is JObject)
                {
                    JObject    lookupDetails = (JObject)token.Value;
                    ZCRMRecord lookupRecord  = ZCRMRecord.GetInstance(fieldAPIName, Convert.ToInt64(lookupDetails["id"]));
                    lookupRecord.LookupLabel = (string)lookupDetails["name"];
                    record.SetFieldValue(fieldAPIName, lookupRecord);
                }
                else if (token.Value is JArray)
                {
                    JArray        jsonArray = (JArray)token.Value;
                    List <object> values    = new List <object>();

                    foreach (Object obj in jsonArray)
                    {
                        if (obj is JObject)
                        {
                            values.Add((JObject)obj);
                        }
                        else
                        {
                            values.Add(obj);
                        }
                    }
                    record.SetFieldValue(fieldAPIName, values);
                }
                else
                {
                    if (token.Value.Type.ToString().Equals("Date"))
                    {
                        record.SetFieldValue(fieldAPIName, CommonUtil.removeEscaping((string)JsonConvert.SerializeObject(token.Value)));
                    }
                    else
                    {
                        record.SetFieldValue(fieldAPIName, token.Value);
                    }
                }
            }
        }
예제 #6
0
 /// <summary>
 /// To get tag instance of the module by passing tag Id.
 /// </summary>
 /// <returns>ZCRMTag class instance.</returns>
 /// <param name="tagid">Tag Id (Long) of the module.</param>
 public static ZCRMTag GetTagInstance(long?tagid)
 {
     return(ZCRMTag.GetInstance(tagid));
 }