Exemple #1
0
    public async void ButtonClicked()
    {
        var temp = await LoadSites();

        Errors er         = new Errors();
        int    page_count = 0;

        foreach (var t in temp)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                Name += "Идет проверка " + t.Key + "\n";
                var r = await GET(t.Value);

                doc.LoadXml(r);
                XmlNodeList urlNodes = doc.GetElementsByTagName("loc");
                Name2 = "Проверено 0 из " + urlNodes.Count + " страниц";
                int count_page_site = 0;
                foreach (XmlNode url in urlNodes)
                {
                    int count = 0;
K:
                    Thread.Sleep(200);

                    var r2 = await GET(url.InnerText);

                    if (string.IsNullOrEmpty(r2))
                    {
                        if (count < 3)
                        {
                            count++;
                            goto K;
                        }
                        else
                        {
                            if (r2.ToLower().Contains("произошла ошибка безопасности"))
                            {
                                er.AddList(new Error {
                                    SiteName = "Сайт " + t.Key, ErrorName = "Отсутствует SSL", UrlName = url.InnerText
                                });
                            }
                            else
                            {
                                er.AddList(new Error {
                                    SiteName = "Сайт " + t.Key, ErrorName = "Страница отсутствует", UrlName = url.InnerText
                                });
                            }
                        }
                    }
                    else if (r2.ToLower().Contains("php"))
                    {
                        er.AddList(new Error {
                            SiteName = "Сайт " + t.Key, ErrorName = "Ошибка backend PHP", UrlName = url.InnerText
                        });
                    }
                    page_count++;
                    count_page_site++;
                    Name2 = "Проверено " + count_page_site + " из " + urlNodes.Count + " страниц";


                    if (count_page_site == urlNodes.Count)
                    {
                        r = await GET("https://" + t.Key + "/" + test_str);

                        if (!r.Contains("\"redirect\":"))
                        {
                            er.AddList(new Error {
                                SiteName = "Сайт " + t.Key, ErrorName = "Анкета не работает", UrlName = "https://" + t.Key + "/form"
                            });
                        }
                    }
                }
            }
            catch
            {
                er.AddList(new Error {
                    SiteName = "Сайт " + t.Key, ErrorName = "Ошибка: проблема с сайтов. Срочно проверить.", UrlName = t.Key
                });
            }
        }

        Name += "Проверка завершена! Проверено страниц: " + page_count + "\n";
        if (er.GetList().Count > 0)
        {
            Name += "Обнаружено ошибок: " + er.GetList().Count + "\n";
            foreach (var t in er.GetList())
            {
                Name += t.SiteName + " Ошибка: " + t.ErrorName + " Страница: " + t.UrlName + "\n";
            }
        }
        else
        {
            Name += "Ошибок не обнаружено!";
        }
    }