public Company Get(string id) { string json = _bitrix.SendCommand("crm.company.get", "ID=" + id).Remove(0, 10); // вырезается часть ответа с данными по времени запроса, так как не придумал зачем они? int removeIndex = json.IndexOf(@",""time"); json = json.Remove(removeIndex, json.Length - removeIndex); return(JsonConvert.DeserializeObject <Company>(json)); }
protected void ButtonLeadASSIGNED_BY_ID_Click(object sender, EventArgs e) { var data = new { fields = new { //NAME = TextBoxLeadASSIGNED_BY_ID.Text } }; var contentText = JsonConvert.SerializeObject(data); var userSearch = BX24.SendCommand("user.search", "", contentText, "POST"); }
protected int getIdLeadByPhone(string Phone) { var dataListLids = new { sort = new { ID = "desc" } }; var strPhone = "&values[]=" + Phone.Substring(Phone.Length - 10, 10) + "&values[]=7" + Phone.Substring(Phone.Length - 10, 10) + "&values[]=8" + Phone.Substring(Phone.Length - 10, 10); log.Info(String.Format("strPhone = {0}", strPhone)); string Leads = BX24.SendCommand("crm.duplicate.findbycomm", "entity_type=LEAD&type=PHONE&values[]=" + strPhone + "&ORDER[ID]=DESC", JsonConvert.SerializeObject(dataListLids), "POST"); log.Info(String.Format("crm.duplicate.findbycomm = {0}", Leads)); var LeadsJSON = JsonConvert.DeserializeObject <dynamic>(Leads); try { if (LeadsJSON.result.LEAD.Count > 0) { log.Info(String.Format("LeadsJSON.result.LEAD.Count = {0}", LeadsJSON.result.LEAD.Count)); int IdLead = (int)LeadsJSON.result.LEAD[0]; log.Info(String.Format("Select IdLead = {0}", IdLead)); return(IdLead); } return(0); } catch (Exception ex) { var r = ex; log.Error(ex); return(0); } }
public IActionResult Index(string query) { //Создаем наш класс, при этом срабатывает конструктор, который сразу авторизируется в Битрикс24 // bx_logon = new Bitrix24(); //Отправляет REST-запрос в Битрикс24, например, получаем список всех задач с помощью команды "task.item.list", string TaskListByJSON = bx_logon.SendCommand("crm.currency.list"); ExchangeRateResponse response = JsonConvert.DeserializeObject <ExchangeRateResponse>(TaskListByJSON); //foreach (var item in response.result) //{ // Console.WriteLine(item.FULL_NAME + " : " + item.AMOUNT + " руб"); //} return(View(response.result)); }
public static void SendMessageBitrix() { SqlTriggerContext triggContext = SqlContext.TriggerContext; SqlCommand command; SqlDataReader reader; if (triggContext.TriggerAction == TriggerAction.Update) { using (SqlConnection connection = new SqlConnection(@"context connection=true")) { connection.Open(); command = new SqlCommand(@"SELECT * FROM INSERTED;", connection); reader = command.ExecuteReader(); reader.Read(); bool goingToSendMessage = false; for (int i = 0; i < reader.FieldCount - 1; i++) { if (reader.GetName(i) == "DocNum") { goingToSendMessage = true; break; } } reader.Close(); if (goingToSendMessage) { Bitrix24 bx_logon = new Bitrix24(); try { _ = bx_logon.SendCommand("log.blogpost.add", "", "USER_ID=1767" + "&POST_TITLE=тест триггер" + "&POST_MESSAGE=тест триггер" + "&DEST[0]=SG521" ); } catch (Exception) { } } } } }
protected void Page_Init(object sender, EventArgs e) { if (Request.QueryString["IdLead"] != null) { IdLead = Convert.ToInt32(Request.QueryString["IdLead"]); } //Создаем наш класс, при этом срабатывает конструктор, который сразу авторизируется в Битрикс24 BX24 = new Bitrix24(HttpContext.Current); // IdLead = 66816; if (!IsPostBack) { Session.Contents["productrows"] = null; Session.Contents["productsearch"] = null; if (Request.QueryString["Phone"] != null) { TextBoxLeadPHONE_1.Text = Request.QueryString["Phone"].ToString(); } } string LeadStatusListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=STATUS", "", "GET"); var StatusList = JsonConvert.DeserializeObject <dynamic>(LeadStatusListByJSON); foreach (var status in StatusList.result) { DropDownListLeadSTATUS_ID.Items.Add(new ListItem(status.NAME.ToString(), status.STATUS_ID.ToString())); } DropDownListLeadPHONE_1.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); string LeadSourceListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=SOURCE", "", "GET"); var SourceList = JsonConvert.DeserializeObject <dynamic>(LeadSourceListByJSON); foreach (var source in SourceList.result) { DropDownListLeadSOURCE_ID.Items.Add(new ListItem(source.NAME.ToString(), source.STATUS_ID.ToString())); } var dataListUsers = new { sort = "LAST_NAME" }; var userSearchListJson = BX24.SendCommand("user.search", "", JsonConvert.SerializeObject(dataListUsers), "POST"); var UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); var users = new List <KeyValuePair <string, string> >(); foreach (var user in UserSearchList.result) { users.Add(new KeyValuePair <string, string>(user.LAST_NAME.ToString() + " " + user.NAME.ToString(), user.ID.ToString())); } DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem("-----", "")); foreach (var user in users.OrderBy(r => r.Key)) { DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem(user.Key, user.Value)); } foreach (var uf in BX24.Userfields) { var tr = new TableRow() { ID = "TableRow" + uf.ID }; var tc1 = new TableCell() { ID = "TableCellLabel" + uf.ID, Text = uf.NAME }; var tc2 = new TableCell() { ID = "TableCellUserfield" + uf.ID }; if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var ddl = new DropDownList() { ID = "DropDownListUserfield" + uf.ID, CssClass = "form-control" }; ddl.Items.Add(new ListItem("-----", "")); foreach (var item in uf.LIST) { ddl.Items.Add(new ListItem() { Text = item.VALUE, Value = item.ID.ToString() }); } tc2.Controls.Add(ddl); } tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } if (IdLead > 0 && !IsPostBack) { string Lead = BX24.SendCommand("crm.lead.get", "ID=" + IdLead, "", "GET"); var LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); LabelNameLead.Text = LeadByJSON.result.TITLE; TextBoxLeadTITLE.Text = LeadByJSON.result.TITLE; TextBoxLeadNAME.Text = LeadByJSON.result.NAME; TextBoxLeadSECOND_NAME.Text = LeadByJSON.result.SECOND_NAME; TextBoxLeadLAST_NAME.Text = LeadByJSON.result.LAST_NAME; DropDownListLeadSTATUS_ID.SelectedValue = LeadByJSON.result.STATUS_ID; TextBoxLeadPHONE_1.Text = LeadByJSON.result.PHONE[0].VALUE; DropDownListLeadPHONE_1.SelectedValue = LeadByJSON.result.PHONE[0].VALUE_TYPE; DropDownListLeadSOURCE_ID.SelectedValue = LeadByJSON.result.SOURCE_ID; CheckBoxLeadOPENED.Checked = LeadByJSON.result.OPENED == "1"; DropDownListLeadASSIGNED_BY_ID.SelectedValue = LeadByJSON.result.ASSIGNED_BY_ID; Type t = LeadByJSON.result.GetType(); foreach (var uf in BX24.Userfields) { if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var DropDownListUF = FindControl("DropDownListUserfield" + uf.ID) as DropDownList; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { DropDownListUF.SelectedValue = item.Value.ToString(); } } } } var Result = new List <Bitrix24.PRODUCT>(); string LeadProductList = BX24.SendCommand("crm.lead.productrows.get", "ID=" + IdLead, "", "GET"); var LeadProductListByJSON = JsonConvert.DeserializeObject <dynamic>(LeadProductList); foreach (var item in LeadProductListByJSON.result) { Result.Add(new Bitrix24.PRODUCT() { ID = item.ID, NAME = BX24.GetNameProduct(item.PRODUCT_ID.ToString()), PRODUCT_PRICE = item.PRICE, PRODUCT_QUANTITY = item.QUANTITY }); } Session.Contents["productrows"] = Result; // LeadByJSON.result.ID HiddenFieldIdLead.Value = IdLead.ToString(); ButtonSaveLead.Text = "Обновить лид"; } //string LeadListByJSON = BX24.SendCommand("crm.lead.list", "", "", "GET"); //string LeadListByJSON = BX24.SendCommand("crm.lead.add", "", contentText, "POST"); // string UFListByJSON = BX24.SendCommand("crm.lead.userfield.list", "", "", "POST"); //string LeadProductListByJSON = BX24.SendCommand("crm.lead.productrows.get", "id=", "", "GET"); }
protected void Page_Init(object sender, EventArgs e) { if (Request.QueryString["IdLead"] != null) { IdLead = Convert.ToInt32(Request.QueryString["IdLead"]); } if (Request.QueryString["IdCampaign"] != null) { IdCampaign = Convert.ToInt32(Request.QueryString["IdCampaign"]); HiddenFieldIdCampaign.Value = IdCampaign.ToString(); } if (Request.QueryString["Phone"] != null) { Phone = Request.QueryString["Phone"].ToString(); } if (Request.QueryString["AbonentNumber"] != null) { Phone = Request.QueryString["AbonentNumber"].ToString(); } BX24 = new Bitrix24(HttpContext.Current, "local.5e6366c7b5b046.63199819", "RwSdKiMWacHu275q7T9b1f1aB36BkxWB7MHw5D8HSbOdi2BkFh", "https://sevan.bitrix24.ru", "https://oauth.bitrix.info", "*****@*****.**", "Bychkova73"); if (!IsPostBack) { Session.Contents["productrows"] = null; Session.Contents["productsearch"] = null; } string LeadStatusListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=STATUS", "", "GET"); var StatusList = JsonConvert.DeserializeObject <dynamic>(LeadStatusListByJSON); foreach (var status in StatusList.result) { DropDownListLeadSTATUS_ID.Items.Add(new ListItem(status.NAME.ToString(), status.STATUS_ID.ToString())); } //DropDownListLeadSTATUS_ID.SelectedValue = "5"; string LeadSourceListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=SOURCE", "", "GET"); var SourceList = JsonConvert.DeserializeObject <dynamic>(LeadSourceListByJSON); foreach (var source in SourceList.result) { DropDownListLeadSOURCE_ID.Items.Add(new ListItem(source.NAME.ToString(), source.STATUS_ID.ToString())); } var li = DropDownListLeadSOURCE_ID.Items.FindByValue("CALL"); if (li != null) { li.Selected = true; } var dataListUsers = new { sort = "LAST_NAME" }; //&FILTER[ID][0]=15938&FILTER[ID][1]=174&FILTER[ID][2]=8170&FILTER[ID][3]=22&FILTER[ID][4]=15934&FILTER[ID][5]=15908 var userSearchListJson = BX24.SendCommand("user.search", "FILTER[ACTIVE]=TRUE", JsonConvert.SerializeObject(dataListUsers), "POST"); var UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); var it = 0; DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem("-----", "")); var users = new List <KeyValuePair <string, string> >(); while (it < 5) { it++; foreach (var user in UserSearchList.result) { users.Add(new KeyValuePair <string, string>(user.LAST_NAME.ToString() + " " + user.NAME.ToString(), user.ID.ToString())); } if (UserSearchList.next != null) { userSearchListJson = BX24.SendCommand("user.search", "FILTER[ACTIVE]=TRUE&start=" + UserSearchList.next.ToString(), JsonConvert.SerializeObject(dataListUsers), "POST"); UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); } else { break; } } foreach (var user in users.OrderBy(r => r.Key)) { DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem(user.Key, user.Value)); } BX24.FilterUserFields = FilterUserFields; foreach (var uf in BX24.Userfields) { var tr = new TableRow() { ID = "TableRow" + uf.ID }; var tc1 = new TableCell() { ID = "TableCellLabel" + uf.ID, Text = uf.NAME }; var tc2 = new TableCell() { ID = "TableCellUserfield" + uf.ID }; if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var ddl = new DropDownList() { ID = "DropDownListUserfield" + uf.ID, CssClass = "form-control" }; ddl.Items.Add(new ListItem("-----", "")); foreach (var item in uf.LIST) { ddl.Items.Add(new ListItem() { Text = item.VALUE, Value = item.ID.ToString() }); } tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.@string) { var ddl = new TextBox() { ID = "TextBoxUserfield" + uf.ID, CssClass = "form-control" }; tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.datetime) { var ddl = new TextBox() { ID = "TextBoxUserfield" + uf.ID, TextMode = TextBoxMode.Date, CssClass = "form-control" }; tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } } if (IdLead == 0 && Phone != "") { var dataListLids = new { sort = new { ID = "desc" } }; string Lead = ""; dynamic LeadByJSON = new { }; string Leads = BX24.SendCommand("crm.lead.list", "FILTER[PHONE]=" + Phone + "&ORDER[ID]=DESC", JsonConvert.SerializeObject(dataListLids), "POST"); var LeadsJSON = JsonConvert.DeserializeObject <dynamic>(Leads); if (LeadsJSON.total > 0) { Lead = BX24.SendCommand("crm.lead.get", "ID=" + LeadsJSON.result[0].ID, "", "GET"); LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); IdLead = (int)LeadsJSON.result[0].ID; } } if (IdLead > 0) { string Lead = ""; dynamic LeadByJSON = new { }; if (IdLead > 0) { try { Lead = BX24.SendCommand("crm.lead.get", "ID=" + IdLead, "", "GET"); LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); } catch (WebException wex) { if (((HttpWebResponse)wex.Response).StatusCode == HttpStatusCode.BadRequest) { Response.Write("Ошибка в запросе. Возможно лид " + IdLead + " был удален из CRM системы"); Response.End(); } } } LabelNameLead.Text = LeadByJSON.result.TITLE; TextBoxLeadTITLE.Text = LeadByJSON.result.TITLE; TextBoxLeadNAME.Text = LeadByJSON.result.NAME; TextBoxLeadSECOND_NAME.Text = LeadByJSON.result.SECOND_NAME; TextBoxLeadADDRESS_CITY.Text = LeadByJSON.result.ADDRESS_CITY; TextBoxLeadLAST_NAME.Text = LeadByJSON.result.LAST_NAME; DropDownListLeadSTATUS_ID.SelectedValue = LeadByJSON.result.STATUS_ID; if (LeadByJSON.result.PHONE != null) { foreach (var phone in LeadByJSON.result.PHONE) { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" + phone.ID, Text = phone.VALUE }; var HiddenField = new HiddenField() { ID = "HiddenFieldLeadPHONE" + phone.ID, Value = phone.ID }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE" + phone.ID, CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); DropDownListLeadPHONE.SelectedValue = phone.VALUE_TYPE; var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE" + phone.ID, ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE" + phone.ID, ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); cell2.Controls.Add(HiddenField); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); } } else { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE", CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); if (Request.QueryString["Phone"] != null) { TextBox.Text = Request.QueryString["Phone"].ToString(); } if (Request.QueryString["AbonentNumber"] != null) { TextBox.Text = Request.QueryString["AbonentNumber"].ToString(); } } DropDownListLeadSOURCE_ID.SelectedValue = LeadByJSON.result.SOURCE_ID; CheckBoxLeadOPENED.Checked = LeadByJSON.result.OPENED == "1"; TextBoxLeadCOMMENTS.Text = LeadByJSON.result.COMMENTS; DropDownListLeadASSIGNED_BY_ID.SelectedValue = LeadByJSON.result.ASSIGNED_BY_ID; Type t = LeadByJSON.result.GetType(); BX24.FilterUserFields = FilterUserFields; foreach (var uf in BX24.Userfields) { if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var DropDownListUF = FindControl("DropDownListUserfield" + uf.ID) as DropDownList; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { DropDownListUF.SelectedValue = item.Value.ToString(); } } } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.datetime) { var TextBoxUserfield = FindControl("TextBoxUserfield" + uf.ID) as TextBox; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { DateTime dt; if (DateTime.TryParse(item.Value.ToString(), out dt)) { TextBoxUserfield.Text = Convert.ToDateTime(dt).ToString("yyyy-MM-dd"); } } } } } //var Result = new List<Bitrix24.PRODUCT>(); //string LeadProductList = BX24.SendCommand("crm.lead.productrows.get", "ID=" + IdLead, "", "GET"); //var LeadProductListByJSON = JsonConvert.DeserializeObject<dynamic>(LeadProductList); //foreach (var item in LeadProductListByJSON.result) //{ // Result.Add(new Bitrix24.PRODUCT() { ID = item.ID, NAME = BX24.GetNameProduct(item.PRODUCT_ID.ToString()), PRODUCT_PRICE = item.PRICE, PRODUCT_QUANTITY = item.QUANTITY }); //} //Session.Contents["productrows"] = Result; // LeadByJSON.result.ID HiddenFieldIdLead.Value = IdLead.ToString(); HiddenFieldIdCampaign.Value = LeadByJSON.result.COMPANY_ID.ToString(); ButtonSaveLead.Text = "Обновить лид"; } else { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE", CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); if (Request.QueryString["Phone"] != null) { TextBox.Text = Request.QueryString["Phone"].ToString(); } if (Request.QueryString["AbonentNumber"] != null) { TextBox.Text = Request.QueryString["AbonentNumber"].ToString(); } } //string LeadListByJSON = BX24.SendCommand("crm.lead.list", "", "", "GET"); //string LeadListByJSON = BX24.SendCommand("crm.lead.add", "", contentText, "POST"); // string UFListByJSON = BX24.SendCommand("crm.lead.userfield.list", "", "", "POST"); //string LeadProductListByJSON = BX24.SendCommand("crm.lead.productrows.get", "id=", "", "GET"); }
protected void Page_Init(object sender, EventArgs e) { if (Request.QueryString["IdLead"] != null) { IdLead = Convert.ToInt32(Request.QueryString["IdLead"]); } BX24 = new Bitrix24(HttpContext.Current, "local.5d9dbbaf8a3075.94895012", "nu67ZnsK1SxXlrD9C5xChsq2LZJzPafKJy60Q6AkbvwHqrGP1U", "https://borond.bitrix24.ru", "https://oauth.bitrix.info", "*****@*****.**", "Vika15986"); if (!IsPostBack) { Session.Contents["productrows"] = null; Session.Contents["productsearch"] = null; if (Request.QueryString["Phone"] != null) { TextBoxLeadPHONE_1.Text = Request.QueryString["Phone"].ToString(); } } string LeadStatusListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=STATUS", "", "GET"); var StatusList = JsonConvert.DeserializeObject <dynamic>(LeadStatusListByJSON); foreach (var status in StatusList.result) { DropDownListLeadSTATUS_ID.Items.Add(new ListItem(status.NAME.ToString(), status.STATUS_ID.ToString())); } DropDownListLeadPHONE_1.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); string LeadSourceListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=SOURCE", "", "GET"); var SourceList = JsonConvert.DeserializeObject <dynamic>(LeadSourceListByJSON); foreach (var source in SourceList.result) { DropDownListLeadSOURCE_ID.Items.Add(new ListItem(source.NAME.ToString(), source.STATUS_ID.ToString())); } var li = DropDownListLeadSOURCE_ID.Items.FindByValue("CALL"); if (li != null) { li.Selected = true; } var dataListUsers = new { sort = "LAST_NAME" }; //&FILTER[ID][0]=15938&FILTER[ID][1]=174&FILTER[ID][2]=8170&FILTER[ID][3]=22&FILTER[ID][4]=15934&FILTER[ID][5]=15908 var userSearchListJson = BX24.SendCommand("user.search", "FILTER[ACTIVE]=TRUE", JsonConvert.SerializeObject(dataListUsers), "POST"); var UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); var users = new List <KeyValuePair <string, string> >(); foreach (var user in UserSearchList.result) { users.Add(new KeyValuePair <string, string>(user.LAST_NAME.ToString() + " " + user.NAME.ToString(), user.ID.ToString())); } DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem("-----", "")); foreach (var user in users.OrderBy(r => r.Key)) { DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem(user.Key, user.Value)); } foreach (var uf in BX24.Userfields) { var tr = new TableRow() { ID = "TableRow" + uf.ID }; var tc1 = new TableCell() { ID = "TableCellLabel" + uf.ID, Text = uf.NAME }; var tc2 = new TableCell() { ID = "TableCellUserfield" + uf.ID }; if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var ddl = new DropDownList() { ID = "DropDownListUserfield" + uf.ID, CssClass = "form-control" }; ddl.Items.Add(new ListItem("-----", "")); foreach (var item in uf.LIST) { ddl.Items.Add(new ListItem() { Text = item.VALUE, Value = item.ID.ToString() }); } tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.@string) { var ddl = new TextBox() { ID = "TextBoxUserfield" + uf.ID, CssClass = "form-control" }; tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } } if (IdLead > 0 && !IsPostBack) { string Lead = BX24.SendCommand("crm.lead.get", "ID=" + IdLead, "", "GET"); var LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); LabelNameLead.Text = LeadByJSON.result.TITLE; TextBoxLeadTITLE.Text = LeadByJSON.result.TITLE; TextBoxLeadNAME.Text = LeadByJSON.result.NAME; TextBoxLeadSECOND_NAME.Text = LeadByJSON.result.SECOND_NAME; TextBoxLeadADDRESS_CITY.Text = LeadByJSON.result.ADDRESS_CITY; TextBoxLeadLAST_NAME.Text = LeadByJSON.result.LAST_NAME; DropDownListLeadSTATUS_ID.SelectedValue = LeadByJSON.result.STATUS_ID; TextBoxLeadPHONE_1.Text = LeadByJSON.result.PHONE[0].VALUE; DropDownListLeadPHONE_1.SelectedValue = LeadByJSON.result.PHONE[0].VALUE_TYPE; DropDownListLeadSOURCE_ID.SelectedValue = LeadByJSON.result.SOURCE_ID; CheckBoxLeadOPENED.Checked = LeadByJSON.result.OPENED == "1"; TextBoxLeadCOMMENTS.Text = LeadByJSON.result.COMMENTS; DropDownListLeadASSIGNED_BY_ID.SelectedValue = LeadByJSON.result.ASSIGNED_BY_ID; Type t = LeadByJSON.result.GetType(); foreach (var uf in BX24.Userfields) { if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { var DropDownListUF = FindControl("DropDownListUserfield" + uf.ID) as DropDownList; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { DropDownListUF.SelectedValue = item.Value.ToString(); } } } } var Result = new List <Bitrix24.PRODUCT>(); string LeadProductList = BX24.SendCommand("crm.lead.productrows.get", "ID=" + IdLead, "", "GET"); var LeadProductListByJSON = JsonConvert.DeserializeObject <dynamic>(LeadProductList); foreach (var item in LeadProductListByJSON.result) { Result.Add(new Bitrix24.PRODUCT() { ID = item.ID, NAME = BX24.GetNameProduct(item.PRODUCT_ID.ToString()), PRODUCT_PRICE = item.PRICE, PRODUCT_QUANTITY = item.QUANTITY }); } Session.Contents["productrows"] = Result; // LeadByJSON.result.ID HiddenFieldIdLead.Value = IdLead.ToString(); ButtonSaveLead.Text = "Обновить лид"; } //string LeadListByJSON = BX24.SendCommand("crm.lead.list", "", "", "GET"); //string LeadListByJSON = BX24.SendCommand("crm.lead.add", "", contentText, "POST"); // string UFListByJSON = BX24.SendCommand("crm.lead.userfield.list", "", "", "POST"); //string LeadProductListByJSON = BX24.SendCommand("crm.lead.productrows.get", "id=", "", "GET"); }
public List <int> FilterUserFields = null;// new List<int>() { 282, 286, 1098, 1170,1800,1801}; protected void Page_Init(object sender, EventArgs e) { XmlConfigurator.Configure(); PanelSMS.Visible = false; if (Request.QueryString["IdLead"] != null) { IdLead = Convert.ToInt32(Request.QueryString["IdLead"]); PanelSMS.Visible = true; log.Info(String.Format("IdLead = {0}", IdLead)); } if (Request.QueryString["Phone"] != null) { Phone = Request.QueryString["Phone"].ToString(); log.Info(String.Format("Phone = {0}", Phone)); } if (Request.QueryString["AbonentNumber"] != null) { Phone = Request.QueryString["AbonentNumber"].ToString(); log.Info(String.Format("AbonentNumber = {0}", Phone)); } BX24 = new Bitrix24(HttpContext.Current, "local.5f3ce274412e70.90823608", "JEudI6GJh83lWlj6NbvIXkroxKUzng5WbYeN4ZJ2x1DDTDMPdE", "https://portal.smart-bazar.ru", "https://oauth.bitrix.info", "*****@*****.**", "wilstream2020"); if (!IsPostBack) { Session.Contents["productrows"] = null; Session.Contents["productsearch"] = null; } string LeadStatusListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=STATUS", "", "GET"); var StatusList = JsonConvert.DeserializeObject <dynamic>(LeadStatusListByJSON); foreach (var status in StatusList.result) { DropDownListLeadSTATUS_ID.Items.Add(new ListItem(status.NAME.ToString(), status.STATUS_ID.ToString())); } if (DropDownListLeadSTATUS_ID.SelectedIndex < 1) { DropDownListLeadSTATUS_ID.SelectedValue = "115"; } string LeadSourceListByJSON = BX24.SendCommand("crm.status.list", "FILTER[ENTITY_ID]=SOURCE", "", "GET"); var SourceList = JsonConvert.DeserializeObject <dynamic>(LeadSourceListByJSON); foreach (var source in SourceList.result) { DropDownListLeadSOURCE_ID.Items.Add(new ListItem(source.NAME.ToString(), source.STATUS_ID.ToString())); } var li = DropDownListLeadSOURCE_ID.Items.FindByValue("CALL"); if (li != null) { li.Selected = true; } var dataListUsers = new { sort = "LAST_NAME" }; //&FILTER[ID][0]=15938&FILTER[ID][1]=174&FILTER[ID][2]=8170&FILTER[ID][3]=22&FILTER[ID][4]=15934&FILTER[ID][5]=15908 var userSearchListJson = BX24.SendCommand("user.search", "FILTER[ACTIVE]=TRUE", JsonConvert.SerializeObject(dataListUsers), "POST"); var UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); var it = 0; DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem("-----", "")); var users = new List <KeyValuePair <string, string> >(); while (it < 5) { it++; foreach (var user in UserSearchList.result) { users.Add(new KeyValuePair <string, string>(user.LAST_NAME.ToString() + " " + user.NAME.ToString(), user.ID.ToString())); } if (UserSearchList.next != null) { userSearchListJson = BX24.SendCommand("user.search", "FILTER[ACTIVE]=TRUE&start=" + UserSearchList.next.ToString(), JsonConvert.SerializeObject(dataListUsers), "POST"); UserSearchList = JsonConvert.DeserializeObject <dynamic>(userSearchListJson); } else { break; } } foreach (var user in users.OrderBy(r => r.Key)) { DropDownListLeadASSIGNED_BY_ID.Items.Add(new ListItem(user.Key, user.Value)); } BX24.FilterUserFields = FilterUserFields; foreach (var uf in BX24.Userfields) { var tr = new TableRow() { ID = "TableRow" + uf.ID }; var tc1 = new TableCell() { ID = "TableCellLabel" + uf.ID, Text = uf.NAME }; var tc2 = new TableCell() { ID = "TableCellUserfield" + uf.ID }; if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { if (uf.MULTIPLE == Bitrix24.MULTIPLE.Y) { var cbl = new CheckBoxList() { ID = "CheckBoxListUserfield" + uf.ID, RepeatColumns = 3 }; foreach (var item in uf.LIST) { cbl.Items.Add(new ListItem() { Text = item.VALUE, Value = item.ID.ToString() }); } tc2.Controls.Add(cbl); } else { var ddl = new DropDownList() { ID = "DropDownListUserfield" + uf.ID, CssClass = "form-control" }; ddl.Items.Add(new ListItem("-----", "")); foreach (var item in uf.LIST) { ddl.Items.Add(new ListItem() { Text = item.VALUE, Value = item.ID.ToString() }); } tc2.Controls.Add(ddl); } tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.@string) { var ddl = new TextBox() { ID = "TextBoxUserfield" + uf.ID, CssClass = "form-control" }; tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.boolean) { var ddl = new CheckBox() { ID = "CheckBoxUserfield" + uf.ID, CssClass = "form-control" }; tc2.Controls.Add(ddl); tr.Cells.Add(tc1); tr.Cells.Add(tc2); TableLead.Rows.Add(tr); } } if (IdLead == 0 && Phone != "") { IdLead = getIdLeadByPhone(Phone); try { if (IdLead > 0) { var Lead = BX24.SendCommand("crm.lead.get", "ID=" + IdLead, "", "GET"); var LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); PanelSMS.Visible = true; } } catch (Exception ex) { var r = ex; log.Error(ex); } } if (IdLead > 0) { string Lead = ""; dynamic LeadByJSON = new { }; if (IdLead > 0) { try { Lead = BX24.SendCommand("crm.lead.get", "ID=" + IdLead, "", "GET"); LeadByJSON = JsonConvert.DeserializeObject <dynamic>(Lead); log.Info(String.Format("Lead = {0}", Lead)); } catch (WebException wex) { log.Error(wex); if (((HttpWebResponse)wex.Response).StatusCode == HttpStatusCode.BadRequest) { Response.Write("Ошибка в запросе. Возможно лид " + IdLead + " был удален из CRM системы"); Response.End(); } } } LabelNameLead.Text = LeadByJSON.result.TITLE; TextBoxLeadTITLE.Text = LeadByJSON.result.TITLE; TextBoxLeadNAME.Text = LeadByJSON.result.NAME; TextBoxLeadSECOND_NAME.Text = LeadByJSON.result.SECOND_NAME; TextBoxLeadADDRESS_CITY.Text = LeadByJSON.result.ADDRESS_CITY; TextBoxLeadLAST_NAME.Text = LeadByJSON.result.LAST_NAME; DropDownListLeadSTATUS_ID.SelectedValue = LeadByJSON.result.STATUS_ID; if (LeadByJSON.result.PHONE != null) { var countContact = 0; foreach (var phone in LeadByJSON.result.PHONE) { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" + phone.ID, Text = phone.VALUE }; var HiddenField = new HiddenField() { ID = "HiddenFieldLeadPHONE" + phone.ID, Value = phone.ID }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE" + phone.ID, CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); DropDownListLeadPHONE.SelectedValue = phone.VALUE_TYPE; var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE" + phone.ID, ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE" + phone.ID, ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); cell2.Controls.Add(HiddenField); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); if (Session.Contents["TableContact"] != null) { var tables = (Session.Contents["TableContact"] as Dictionary <string, TableRow>); if (tables.ContainsKey("TableRow" + countContact)) { tables.Remove("TableRow" + countContact); } Session.Contents["TableContact"] = tables; } countContact++; } } else { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE", CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); if (Request.QueryString["Phone"] != null) { TextBox.Text = Request.QueryString["Phone"].ToString(); } if (Request.QueryString["AbonentNumber"] != null) { TextBox.Text = Request.QueryString["AbonentNumber"].ToString(); } } if (LeadByJSON.result.EMAIL != null) { var countContact = 0; foreach (var email in LeadByJSON.result.EMAIL) { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadEMAIL" + email.ID, Text = email.VALUE }; var HiddenField = new HiddenField() { ID = "HiddenFieldLeadEMAIL" + email.ID, Value = email.ID }; var DropDownListLeadEMAIL = new DropDownList() { ID = "DropDownListLeadEMAIL" + email.ID, CssClass = "form-control" }; DropDownListLeadEMAIL.Items.AddRange( BX24.EmailTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); DropDownListLeadEMAIL.SelectedValue = email.VALUE_TYPE; var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadEMAIL" + email.ID, ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadEMAIL" + email.ID, ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic, Enabled = false }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadEMAIL); cell2.Controls.Add(HiddenField); row.Cells.Add(cell); row.Cells.Add(cell2); TableEmails.Rows.Add(row); if (Session.Contents["TableContactEmail"] != null) { var tables = (Session.Contents["TableContactEmail"] as Dictionary <string, TableRow>); if (tables.ContainsKey("TableRow" + countContact)) { tables.Remove("TableRow" + countContact); } Session.Contents["TableContactEmail"] = tables; } countContact++; } } else { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadEMAIL" }; var DropDownListLeadEMAIL = new DropDownList() { ID = "DropDownListLeadEMAIL", CssClass = "form-control" }; DropDownListLeadEMAIL.Items.AddRange( BX24.EmailTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadEMAIL", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadEMAIL", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic, Enabled = false }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadEMAIL); row.Cells.Add(cell); row.Cells.Add(cell2); TableEmails.Rows.Add(row); } DropDownListLeadSOURCE_ID.SelectedValue = LeadByJSON.result.SOURCE_ID; CheckBoxLeadOPENED.Checked = LeadByJSON.result.OPENED == "1"; TextBoxLeadCOMMENTS.Text = LeadByJSON.result.COMMENTS; TextBoxLeadSTATUS_DESCRIPTION.Text = LeadByJSON.result.STATUS_DESCRIPTION; DropDownListLeadASSIGNED_BY_ID.SelectedValue = LeadByJSON.result.ASSIGNED_BY_ID; Type t = LeadByJSON.result.GetType(); foreach (var uf in BX24.Userfields) { if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.enumeration) { if (uf.MULTIPLE == Bitrix24.MULTIPLE.Y) { var CheckBoxListUF = FindControl("CheckBoxListUserfield" + uf.ID) as CheckBoxList; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { foreach (var val_ in item.Value) { ListItem li_ = CheckBoxListUF.Items.FindByValue(val_.ToString()); if (li_ != null) { li_.Selected = true; } } } } } else { var DropDownListUF = FindControl("DropDownListUserfield" + uf.ID) as DropDownList; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { DropDownListUF.SelectedValue = item.Value.ToString(); } } } } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.@string) { var ddl = FindControl("TextBoxUserfield" + uf.ID) as TextBox; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { ddl.Text = item.Value.ToString(); } } } else if (uf.USER_TYPE_ID == Bitrix24.USER_TYPE_ID.boolean) { var ddl = FindControl("CheckBoxUserfield" + uf.ID) as CheckBox; foreach (Newtonsoft.Json.Linq.JProperty item in LeadByJSON.result) { if (item.Name == uf.FIELD_NAME)//property name { ddl.Checked = item.Value.ToString() == "1"; } } } } //var Result = new List<Bitrix24.PRODUCT>(); //string LeadProductList = BX24.SendCommand("crm.lead.productrows.get", "ID=" + IdLead, "", "GET"); //var LeadProductListByJSON = JsonConvert.DeserializeObject<dynamic>(LeadProductList); //foreach (var item in LeadProductListByJSON.result) //{ // Result.Add(new Bitrix24.PRODUCT() { ID = item.ID, NAME = BX24.GetNameProduct(item.PRODUCT_ID.ToString()), PRODUCT_PRICE = item.PRICE, PRODUCT_QUANTITY = item.QUANTITY }); //} //Session.Contents["productrows"] = Result; // LeadByJSON.result.ID HiddenFieldIdLead.Value = IdLead.ToString(); log.Info(String.Format("Set HiddenFieldIdLead = {0}", HiddenFieldIdLead.Value)); ButtonSaveLead.Text = "Обновить лид"; } else { { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadPHONE" }; var DropDownListLeadPHONE = new DropDownList() { ID = "DropDownListLeadPHONE", CssClass = "form-control" }; DropDownListLeadPHONE.Items.AddRange( BX24.PhoneTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadPHONE", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadPHONE", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadPHONE); row.Cells.Add(cell); row.Cells.Add(cell2); TablePhones.Rows.Add(row); if (Request.QueryString["Phone"] != null) { TextBox.Text = Request.QueryString["Phone"].ToString(); } if (Request.QueryString["AbonentNumber"] != null) { TextBox.Text = Request.QueryString["AbonentNumber"].ToString(); } } ; { var row = new TableRow() { }; var cell = new TableCell() { }; var cell2 = new TableCell() { }; var TextBox = new TextBox() { CssClass = "form-control", ID = "TextBoxLeadEMAIL" }; var DropDownListLeadEMAIL = new DropDownList() { ID = "DropDownListLeadEMAIL", CssClass = "form-control" }; DropDownListLeadEMAIL.Items.AddRange( BX24.EmailTypes.Select(r => new ListItem(r.Value, r.Key)).ToArray()); var RequiredFieldValidator = new RequiredFieldValidator() { ID = "RequiredFieldValidatorTextBoxLeadEMAIL", ValidationGroup = "Lead", ControlToValidate = "TextBoxLeadEMAIL", ForeColor = System.Drawing.Color.Red, ErrorMessage = "Заполните поле", Display = ValidatorDisplay.Dynamic, Enabled = false }; cell.Controls.Add(TextBox); cell.Controls.Add(RequiredFieldValidator); cell2.Controls.Add(DropDownListLeadEMAIL); row.Cells.Add(cell); row.Cells.Add(cell2); TableEmails.Rows.Add(row); } } if (Session.Contents["TableContact"] != null) { foreach (var item in (Session.Contents["TableContact"] as Dictionary <string, TableRow>)) { TablePhones.Controls.Add(item.Value); } } if (Session.Contents["TableContactEmail"] != null) { foreach (var item in (Session.Contents["TableContactEmail"] as Dictionary <string, TableRow>)) { TableEmails.Controls.Add(item.Value); } } //string LeadListByJSON = BX24.SendCommand("crm.lead.list", "", "", "GET"); //string LeadListByJSON = BX24.SendCommand("crm.lead.add", "", contentText, "POST"); // string UFListByJSON = BX24.SendCommand("crm.lead.userfield.list", "", "", "POST"); //string LeadProductListByJSON = BX24.SendCommand("crm.lead.productrows.get", "id=", "", "GET"); }