예제 #1
0
    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)
                    {
                    }
                }
            }
        }
    }
예제 #2
0
 public Tasks(Bitrix24 bitrix)
 {
     _bitrix = bitrix;
 }
예제 #3
0
    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");
    }
예제 #4
0
    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");
    }
예제 #5
0
 public SearchController(Bitrix24 bitrix24, ExchangeRateResponse exchangeRateResponse)
 {
     this.bx_logon             = bitrix24;
     this.exchangeRateResponse = exchangeRateResponse;
 }
예제 #6
0
    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");
    }
예제 #7
0
 public Companies(Bitrix24 bitrix)
 {
     _bitrix = bitrix;
 }
예제 #8
0
    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");
    }