コード例 #1
0
 private string ReadAsXNet(string server, string addr)
 {
     using (var client = new xNet.HttpRequest(server))
     {
         return(client.Get(addr).ToString());
     }
 }
コード例 #2
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        // получсаем ид ответственного
        public string[] isHaveCont(string portal, string acectok, string tel)
        {
            string respc;

            xNet.HttpResponse resp;
            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                resp  = request.Get("https://" + portal + "/api/v2/contacts?query=" + tel);
                respc = resp.ToString();
            }
            var converter = new ExpandoObjectConverter();

            if (resp.StatusCode != xNet.HttpStatusCode.OK)
            {
                return(null);
            }
            else
            {
                dynamic  obj2   = JsonConvert.DeserializeObject <ExpandoObject>(respc, converter);
                string[] iduser = new string[3];
                iduser[0] = obj2._embedded.items[0].responsible_user_id.ToString(); // ответственный
                iduser[1] = obj2._embedded.items[0].name.ToString();                // имя контакта
                iduser[2] = obj2._embedded.items[0].id.ToString();                  // ид контакта
                return(iduser);
            }
        }
コード例 #3
0
 private string ReadAsXNetForce(string server, string addr)
 {
     using (var client = new xNet.HttpRequest(server))
     {
         client.IgnoreProtocolErrors = true;
         return(client.Get(addr).ToString());
     }
 }
コード例 #4
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public string CreatCont(string portal, string acectok, string tel, string userid)
        {
            string content2;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                content2 = request.Get("https://" + portal + "/api/v2/account?with=custom_fields").ToString();
            }
            var     converter = new ExpandoObjectConverter();
            dynamic obj       = JsonConvert.DeserializeObject <ExpandoObject>(content2, converter);
            string  idtelef   = "0";

            foreach (var item in obj._embedded.custom_fields.contacts)
            {
                if (item.Value.name == "Телефон")
                {
                    idtelef = item.Value.id.ToString(); break;
                }
            }

            DateTimeOffset td   = DateTimeOffset.Now;
            var            data = new
            {
                add = new[] {
                    new
                    {
                        name = "Новый контакт",
                        responsible_user_id = userid,
                        created_by          = userid,
                        created_at          = td.ToUnixTimeSeconds(),
                        custom_fields       = new[] {
                            new
                            {
                                id     = idtelef,
                                values = new[]
                                {
                                    new { value = tel, @enum = "WORK" }
                                }
                            }
                        }
                    }
                }
            };
            string contentText2 = JsonConvert.SerializeObject(data).ToString();
            string content;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                content = request.Post("https://" + portal + "/api/v2/contacts", contentText2, "application/json").ToString();
            }
            dynamic obj2   = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
            string  iduser = obj2._embedded.items[0].id.ToString();

            return(iduser);
        }
コード例 #5
0
        private void downloadFileV2_Ex(string url, string path)
        {
            xNet.HttpRequest http = new xNet.HttpRequest();
            http.ConnectTimeout   = 99999999;
            http.KeepAliveTimeout = 99999999;
            http.ReadWriteTimeout = 99999999;
            var binImg = http.Get(url).ToMemoryStream().ToArray();

            File.WriteAllBytes(path, binImg);
        }
コード例 #6
0
 private List <UpdateFileInfo> GetUpdateFiles()
 {
     using (var request = new xNet.HttpRequest())
     {
         try
         {
             string content = request.Get(String.Format("{0}/updateInfo.json", updateFilePath)).ToString();
             return(JsonConvert.DeserializeObject <List <UpdateFileInfo> >(content));
         }
         catch (Exception e)
         {
             HandleError(0, e);
             return(null);
         }
     }
 }
コード例 #7
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public bool ifhaveDeals(string portal, string acectok, int idcont /*, List<string> lststatus*/)
        {
            List <string> lststatus = new List <string>()
            {
                "142", "143"
            };
            var    converter = new ExpandoObjectConverter();
            string content;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                content = request.Get("https://" + portal + "/api/v4/contacts/" + idcont + "?with=leads").ToString();
            }
            dynamic    obj      = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
            List <int> lstdeals = new List <int>();

            foreach (var item in obj._embedded.leads)
            {
                lstdeals.Add(Convert.ToInt32(item.id));
            }
            bool flag = false;

            foreach (var item in lstdeals)
            {
                string content2;
                using (xNet.HttpRequest request2 = new xNet.HttpRequest())
                {
                    request2.AddHeader("Authorization", " Bearer " + acectok);
                    content2 = request2.Get("https://" + portal + "/api/v4/leads/" + item).ToString();
                }
                dynamic obj2 = JsonConvert.DeserializeObject <ExpandoObject>(content2, converter);
                if (lststatus.Contains(obj2.status_id.ToString()))
                {
                    continue;
                }
                else
                {
                    flag = true;
                }
            }
            return(flag);
        }
コード例 #8
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public string GetUserName(string portal, string acectok, int iduser)
        {
            string resp;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                resp = request.Get("https://" + portal + "/api/v2/account?with=users").ToString();
            }
            var     converter = new ExpandoObjectConverter();
            dynamic obj       = JsonConvert.DeserializeObject <ExpandoObject>(resp, converter);
            string  name      = "";

            foreach (var item in obj._embedded.users)
            {
                if (Convert.ToInt32(item.Value.id) == iduser)
                {
                    name = item.Value.name;
                }
            }
            return(name);
        }
コード例 #9
0
        public static string tfacode(string code)
        {
            string result = "";

            xNet.HttpRequest http = new xNet.HttpRequest();
            try
            {
                code = code.Replace("\r", "").Replace("\n", "").Replace(" ", "").ToString();
                string response = http.Get("http://2fa.live/tok/" + code).ToString();
                result = Regex.Match(response, "token.*?(\\d+)").Groups[1].Value;
            }
            catch
            {
                result = "";
            }
            finally
            {
                http.Dispose();
                http.Close();
            }
            return(result);
        }
コード例 #10
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public List <string> StatusDeal(string portal, string acectok)
        {
            var    converter = new ExpandoObjectConverter();
            string content;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                content = request.Get("https://" + portal + "/api/v4/leads/pipelines").ToString();
            }
            dynamic obj     = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
            string  idvoron = obj._embedded.pipelines[0].id.ToString();

            string content2;

            using (xNet.HttpRequest request2 = new xNet.HttpRequest())
            {
                request2.AddHeader("Authorization", " Bearer " + acectok);
                content2 = request2.Get("https://" + portal + "/api/v4/leads/pipelines/" + idvoron + "/statuses").ToString();
            }
            dynamic       obj2      = JsonConvert.DeserializeObject <ExpandoObject>(content2, converter);
            List <string> lstidstat = new List <string>();

            foreach (var item in obj2._embedded.statuses)
            {
                Encoding utf8         = Encoding.GetEncoding("UTF-8");
                Encoding win1251      = Encoding.GetEncoding("Windows-1251");
                byte[]   utf8Bytes    = win1251.GetBytes(item.name);
                byte[]   win1251Bytes = Encoding.Convert(utf8, win1251, utf8Bytes);

                item.name = win1251.GetString(win1251Bytes);
                if ((item.name == "Первичный контакт") || (item.name == "Переговоры") || (item.name == "Принимают решение") || (item.name == "Согласование договора"))
                {
                    lstidstat.Add(item.id.ToString());
                }
            }
            return(lstidstat);
        }
コード例 #11
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public List <UserGetApi> GetListApiUsers(string portal, string acectok)
        {
            string resp;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                resp = request.Get("https://" + portal + "/api/v2/account?with=users").ToString();
            }
            var               converter = new ExpandoObjectConverter();
            dynamic           obj       = JsonConvert.DeserializeObject <ExpandoObject>(resp, converter);
            List <UserGetApi> userlst   = new List <UserGetApi>();

            foreach (var item in obj._embedded.users)
            {
                UserGetApi user = new UserGetApi();
                user.id      = Convert.ToInt32(item.Value.id);
                user.isadmin = item.Value.is_admin;
                user.name    = item.Value.name;
                userlst.Add(user);
            }
            return(userlst);
        }
コード例 #12
0
ファイル: amoFunction.cs プロジェクト: vladimir87-lab/axatel
        public int CreatRazobrab(string portal, string acectok, int cosht, int idcont, int idotv, string tag, string number, string link, int duration, string iddopfild, string namedopfild)
        {
            var    converter = new ExpandoObjectConverter();
            string content2;

            using (xNet.HttpRequest request2 = new xNet.HttpRequest())
            {
                request2.AddHeader("Authorization", " Bearer " + acectok);
                content2 = request2.Get("https://" + portal + "/api/v4/leads/pipelines").ToString();
            }
            dynamic obj2 = JsonConvert.DeserializeObject <ExpandoObject>(content2, converter);

            var data3 = new[]
            {
                new{ name = tag }
            };
            string contentText3 = JsonConvert.SerializeObject(data3).ToString();
            string content3;

            using (xNet.HttpRequest request3 = new xNet.HttpRequest())
            {
                request3.AddHeader("Authorization", " Bearer " + acectok);
                content3 = request3.Post("https://" + portal + "/api/v4/leads/tags", contentText3, "application/json").ToString();
            }
            dynamic        obj3    = JsonConvert.DeserializeObject <ExpandoObject>(content3, converter);
            int            idtag   = Convert.ToInt32(obj3._embedded.tags[0].id);
            int            idvoron = Convert.ToInt32(obj2._embedded.pipelines[0].id);
            string         guid1   = Guid.NewGuid().ToString();
            DateTimeOffset td      = DateTimeOffset.Now;
            var            data    = new[]
            {
                new
                {
                    request_id  = "123",
                    source_name = "Источник #1",
                    source_uid  = guid1,
                    pipeline_id = idvoron,
                    created_at  = td.ToUnixTimeSeconds(),
                    _embedded   = new
                    {
                        leads = new[]
                        {
                            new{ name  = "Новая сделка",
                                 price = cosht,
                                 custom_fields_values = new[]
                                 {
                                     new { field_id = Convert.ToInt32(iddopfild), values = new[] { new { value = namedopfild } } }
                                 },
                                 _embedded = new{
                                     tags = new[]
                                     {
                                         new{ id = idtag }
                                     }
                                 } }
                        },
                        contacts = new[]
                        {
                            new{ id = idcont }
                        }
                    },
                    metadata = new
                    {
                        is_call_event_needed = true,
                        duration             = duration,
                        uniq         = guid1,
                        service_code = "12345678",
                        link         = link, //"https://service-axatel.ru:8099/content/zapisvobrabotke.mp3",
                        phone        = number,
                        called_at    = td.ToUnixTimeSeconds(),
                        from         = "клиента " + number
                    }
                }
            };
            string contentText2 = JsonConvert.SerializeObject(data).ToString();
            string content;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                request.AddHeader("Authorization", " Bearer " + acectok);
                content = request.Post("https://" + portal + "/api/v4/leads/unsorted/sip", contentText2, "application/json").ToString();
            }
            dynamic obj = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);

            return(1);
        }
コード例 #13
0
        public void loadProxyByUrl(bool withThread, int updateInterval = 15)
        {
            try
            {
                if (withThread)
                {
                    Thread a = new Thread(new ThreadStart(() =>
                    {
                        while (true)
                        {
                            again:
                            try
                            {
                                if (loadByFile)
                                {
                                    proxyList.Clear();
                                    loadList(proxyUrl, ref proxyList);
                                }
                                else
                                {
                                    xNet.HttpRequest req = new xNet.HttpRequest
                                    {
                                        IgnoreProtocolErrors = true,
                                        Cookies = new xNet.CookieDictionary(false),
                                        KeepAlive = true,
                                        ConnectTimeout = 20000,
                                        ReadWriteTimeout = 20000
                                    };
                                    req.Get(proxyUrl, null);
                                    string source = req.Response.ToString();
                                    if (source.Length > 50)
                                    {
                                        Regex rx = new Regex(@"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}");
                                        MatchCollection collection = rx.Matches(source);
                                        if (collection.Count > 30)
                                        {
                                            proxyList.Clear();
                                            foreach (Match item in collection)
                                            {
                                                try
                                                {
                                                    string value = item.Value.ToString();
                                                    if (value.Length > 10)
                                                    {
                                                        proxyList.Add(value);
                                                    }
                                                    else
                                                    {
                                                        continue;
                                                    }
                                                }
                                                catch { }
                                            }
                                            listClearance(ref proxyList);
                                            statistics.Proxies = proxyList.Count;
                                            statistics.Proxies_FX += proxyList.Count;
                                            addLog($"{proxyList.Count} proxies updated", ConsoleColor.Cyan);
                                        }
                                        else
                                        {
                                            addLog("There is no enough proxies in pool", ConsoleColor.Red);
                                        }
                                    }
                                    else
                                    {
                                        addLog("There is no proxies in pool", ConsoleColor.Red);
                                    }
                                }
                            }
                            catch (Exception E)
                            {
                                HandleException(E);

                                Thread.Sleep(5000);
                                goto again;
                            }
                            Thread.Sleep(updateInterval * 60000);
                        }
                    }));
                    threadlist.Add(a);
                    a.Start();
                }
                else
                {
                    try
                    {
                        xNet.HttpRequest req = new xNet.HttpRequest
                        {
                            IgnoreProtocolErrors = true,
                            Cookies = new xNet.CookieDictionary(false),
                            KeepAlive = true,
                            ConnectTimeout = 20000,
                            ReadWriteTimeout = 20000
                        };
                        req.Get(proxyUrl, null);
                        string source = req.Response.ToString();
                        if (source.Length > 50)
                        {
                            Regex rx = new Regex(@"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}");
                            MatchCollection collection = rx.Matches(source);
                            if (collection.Count > 30)
                            {
                                proxyList.Clear();
                                foreach (Match item in collection)
                                {
                                    try
                                    {
                                        string value = item.Value.ToString();
                                        if (value.Length > 10)
                                        {
                                            proxyList.Add(value);
                                        }
                                        else
                                        {
                                            continue;
                                        }
                                    }
                                    catch { }
                                }
                                listClearance(ref proxyList);
                                statistics.Proxies = proxyList.Count;
                                statistics.Proxies_FX += proxyList.Count;
                                addLog($"{proxyList.Count} proxies updated", ConsoleColor.Cyan);
                            }
                            else
                            {
                                addLog("There is no enough proxies in pool", ConsoleColor.Red);
                            }
                        }
                        else
                        {
                            addLog("There is no proxies in pool", ConsoleColor.Red);
                        }
                    }
                    catch (Exception E)
                    {
                        HandleException(E);
                    }
                }
            }
            catch (Exception E)
            {
                HandleException(E);
            }
        }
コード例 #14
0
        public ApiResult UserQuery(string path, HttpMethod httpMethod, Dictionary <string, string> headers = null, string content = "", bool jsonContent = false)
        {
            xNet.HttpResponse response    = null;
            string            contentType = null;

            path = BaseUri + path;

            if (!(httpMethod == HttpMethod.Get || httpMethod == HttpMethod.Post ||
                  httpMethod == HttpMethod.Delete || httpMethod == HttpMethod.Put))
            {
                throw new ArgumentException("Unsupported http method " + httpMethod);
            }
            if (httpMethod != HttpMethod.Get && content.Length == 0)
            {
                throw new ArgumentException("Empty content.");
            }

            if (headers != null && headers.Count == 0)
            {
                throw new ArgumentException("Empty headers.");
            }

            if (headers != null)
            {
                foreach (var h in headers)
                {
                    _request.AddHeader(h.Key, h.Value);
                }
            }
            if (httpMethod != HttpMethod.Get)
            {
                contentType = jsonContent ? "application/json" : "application/x-www-form-urlencoded";
            }
            lock (_obj)
            {
                try
                {
                    if (httpMethod == HttpMethod.Get)
                    {
                        response = _request.Get(path);
                    }

                    else if (httpMethod == HttpMethod.Post)
                    {
                        response = _request.Post(path, content, contentType);
                    }

                    else if (httpMethod == HttpMethod.Delete)
                    {
                        response = _request.Delete(path, content, contentType);
                    }

                    else if (httpMethod == HttpMethod.Put)
                    {
                        response = _request.Put(path, content, contentType);
                    }
                }
                catch (xNet.HttpException ex)
                {
                    return(new ApiResult((int)ex.HttpStatusCode, ex.InnerMessage));
                }
            }
            content = response.ToString();
            ParseResponseHeaders(response);

            return(new ApiResult((int)response.StatusCode, content));
        }
コード例 #15
0
        public ActionResult ParsTask(int IdTaskB24, string Domen, string Hesh, string NameTbl)
        {
            List <DataAbonent> badabonent = new List <DataAbonent>();  // Список пустых абонентов
            var    converter = new ExpandoObjectConverter();
            string content;

            using (xNet.HttpRequest request = new xNet.HttpRequest())
            {
                content = request.Get("https://" + Domen + "/rest/" + Hesh + "/tasks.task.get?id=" + IdTaskB24).ToString();
            }
            dynamic       obj     = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
            List <string> lstabon = new List <string>();

            foreach (var item in obj.result.task.ufCrmTask)
            {
                lstabon.Add(item);
            }
            // List<object[]> lsttel = new List<object[]>();
            //try
            //{
            //    lsttel = sql.SelectUserTel(NameTbl);
            //}catch
            //{

            //}
            sql.CreateTable(NameTbl);

            foreach (var item in lstabon)
            {
                DataAbonent abonent  = new DataAbonent();
                string[]    dataabon = item.Split('_');
                if (dataabon[0] == "C")
                {
                    using (xNet.HttpRequest request = new xNet.HttpRequest())
                    {
                        content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.contact.get?id=" + dataabon[1]).ToString();
                    }
                    dynamic obj2 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                    content          = System.Text.RegularExpressions.Regex.Unescape(content);
                    abonent.datajson = content;
                    abonent.Type     = "Контакт";
                    abonent.IdEnt    = dataabon[1];
                    try
                    {
                        abonent.telef = obj2.result.PHONE[0].VALUE;
                    }
                    catch { continue; }
                }
                else if (dataabon[0] == "CO")
                {
                    using (xNet.HttpRequest request = new xNet.HttpRequest())
                    {
                        content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.company.get?id=" + dataabon[1]).ToString();
                    }
                    dynamic obj3 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                    content          = System.Text.RegularExpressions.Regex.Unescape(content);
                    abonent.datajson = content;
                    abonent.Type     = "Компания";
                    abonent.IdEnt    = dataabon[1];
                    try
                    {
                        abonent.telef = obj3.result.PHONE[0].VALUE;
                    }
                    catch { continue; }
                }
                else if (dataabon[0] == "L")
                {
                    using (xNet.HttpRequest request = new xNet.HttpRequest())
                    {
                        content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.lead.get?id=" + dataabon[1]).ToString();
                    }
                    dynamic obj4 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                    content          = System.Text.RegularExpressions.Regex.Unescape(content);
                    abonent.datajson = content;
                    abonent.Type     = "Лид";
                    abonent.IdEnt    = dataabon[1];
                    try
                    {
                        abonent.telef = obj4.result.PHONE[0].VALUE;
                    }
                    catch { continue; }
                }
                else if (dataabon[0] == "D")
                {
                    using (xNet.HttpRequest request = new xNet.HttpRequest())
                    {
                        content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.deal.get?id=" + dataabon[1]).ToString();
                    }
                    dynamic obj5 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                    System.Threading.Thread.Sleep(400);
                    if (obj5.result.COMPANY_ID != "0")
                    {
                        using (xNet.HttpRequest request = new xNet.HttpRequest())
                        {
                            content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.company.get?id=" + obj5.result.COMPANY_ID).ToString();
                        }
                        dynamic obj3 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                        content          = System.Text.RegularExpressions.Regex.Unescape(content);
                        abonent.datajson = content;
                        abonent.Type     = "Сделка";
                        abonent.IdEnt    = dataabon[1];
                        try
                        {
                            abonent.telef = obj3.result.PHONE[0].VALUE;
                        }
                        catch { continue; }
                    }
                    else
                    {
                        if (obj5.result.CONTACT_ID == null)
                        {
                            continue;
                        }
                        using (xNet.HttpRequest request = new xNet.HttpRequest())
                        {
                            content = request.Get("https://" + Domen + "/rest/" + Hesh + "/crm.contact.get?id=" + obj5.result.CONTACT_ID).ToString();
                        }
                        dynamic obj2 = JsonConvert.DeserializeObject <ExpandoObject>(content, converter);
                        content          = System.Text.RegularExpressions.Regex.Unescape(content);
                        abonent.datajson = content;
                        abonent.Type     = "Сделка";
                        abonent.IdEnt    = dataabon[1];
                        try
                        {
                            abonent.telef = obj2.result.PHONE[0].VALUE;
                        }
                        catch { continue; }
                    }
                }

                string strtel = new string(abonent.telef.Where(t => char.IsDigit(t)).ToArray());
                strtel = func.FilterNumber(strtel);
                // lsttel = sql.SelectUserTel(NameTbl);
                if (string.IsNullOrEmpty(strtel))
                {
                    abonent.Title = "Пустой телефон или не верный формат";
                    badabonent.Add(abonent);
                    continue;
                }
                if (!sql.HaveRowsTel(NameTbl, strtel))
                {
                    sql.ImportDataTel(NameTbl, strtel, abonent.datajson, IdTaskB24);
                    count++;
                }
                else
                {
                    abonent.Title = "Дубль";
                    badabonent.Add(abonent);
                }
                System.Threading.Thread.Sleep(400);
            }
            ViewBag.Count = count;
            return(View(badabonent));

            return(Content("<div style=\"text-align: center; padding: 20px; font-size: 22px; \"><div>Импорт завершен! Всего: " + count + " записей.</div><div><a href=\"/\">Назад</a></div></div>"));
        }