Example #1
0
 public static TagH1 onmouseout(this TagH1 tag, string value)
 {
     tag.OnMouseOut = value; return(tag);
 }
Example #2
0
 public static TagH1 onmouseup(this TagH1 tag, string value)
 {
     tag.OnMouseUp = value; return(tag);
 }
Example #3
0
 public static TagH1 onmousemove(this TagH1 tag, string value)
 {
     tag.OnMouseMove = value; return(tag);
 }
Example #4
0
 public static TagH1 ondblclick(this TagH1 tag, string value)
 {
     tag.OnDblClick = value; return(tag);
 }
Example #5
0
 public static TagH1 onmousedown(this TagH1 tag, string value)
 {
     tag.OnMouseDown = value; return(tag);
 }
Example #6
0
 public static TagH1 xmllang(this TagH1 tag, string value)
 {
     tag.XmlLang = value; return(tag);
 }
Example #7
0
 public static TagH1 dir(this TagH1 tag, Dir value)
 {
     tag.Dir = value; return(tag);
 }
Example #8
0
 public static TagH1 title(this TagH1 tag, string value)
 {
     tag.Title = value; return(tag);
 }
Example #9
0
 public static TagH1 lang(this TagH1 tag, LangCode value)
 {
     tag.Lang = value; return(tag);
 }
Example #10
0
 public static TagH1 @class(this TagH1 tag, string value)
 {
     tag.Class = value; return(tag);
 }
Example #11
0
 public static TagH1 style(this TagH1 tag, string value)
 {
     tag.Style = value; return(tag);
 }
Example #12
0
 public static TagH1 id(this TagH1 tag, string value)
 {
     tag.Id = value; return(tag);
 }
Example #13
0
 public static TagH1 onkeyup(this TagH1 tag, string value)
 {
     tag.OnKeyUp = value; return(tag);
 }
Example #14
0
 public static TagH1 onkeydown(this TagH1 tag, string value)
 {
     tag.OnKeyDown = value; return(tag);
 }
Example #15
0
 public static TagH1 onkeypress(this TagH1 tag, string value)
 {
     tag.OnKeyPress = value; return(tag);
 }
Example #16
0
        public string WebChecker(string url)
        {
            string   http                 = "http://";
            string   https                = "https://";
            string   lblResult            = String.Empty;
            string   lblStatusDescription = String.Empty;
            string   lblCause             = String.Empty;
            string   innerTextOfTitle     = String.Empty;
            string   contentOfTagMeta     = String.Empty;
            string   tagA                 = String.Empty;
            string   tagImg               = String.Empty;
            string   innerTextOfH1        = String.Empty;
            string   all  = String.Empty;
            DateTime date = DateTime.Now;

            Urls          urllink    = new Urls();
            List <TagA>   tagAList   = new List <TagA>();
            List <TagImg> tagImgList = new List <TagImg>();
            List <TagH1>  tagH1List  = new List <TagH1>();

            try
            {
                //------проверяем есть ли ссылка-------------
                if (string.IsNullOrEmpty(url))
                {
                    MessageBox.Show(@"Вы не вввели ссылку !");
                    return(null);
                }

                //---делаем проверку на наличие протокола "http://" в ссылке запроса
                if (!(url.StartsWith(http) || url.StartsWith(https)))
                {
                    url = url.Insert(0, http);
                }
                //------------------------------------------------------------------

                // Создаём объект запроса
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

                // Получаем ответ с сервера, если запрашиваемый URL не действителен,
                // переходим к блоку catch, иначе идем дальше.
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                if (request.HaveResponse)
                {
                    lblResult            = (response.StatusCode == HttpStatusCode.OK) ? "Сайт доступен" : "Сайт не доступен";
                    lblStatusDescription = response.StatusDescription;
                    lblCause             = ((int)response.StatusCode).ToString();

                    string respStream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();
                    HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
                    htmlDoc.LoadHtml(respStream);

                    //------ получаем значение тэга Title -------------
                    var nodeTitle = htmlDoc.DocumentNode.SelectNodes("//title");
                    if (nodeTitle != null)
                    {
                        innerTextOfTitle = nodeTitle["title"].InnerText;
                    }
                    //--------------------------------------------------

                    //------ получаем значение атрибута content тэга meta у которого
                    //------ значение атрибута name является description
                    var nodeMeta = htmlDoc.DocumentNode.SelectNodes("//meta");
                    if (nodeMeta != null)
                    {
                        foreach (var tag in nodeMeta)
                        {
                            if (tag.Attributes["name"] != null && tag.Attributes["name"].Value == "description")
                            {
                                contentOfTagMeta = tag.Attributes["content"].Value;
                            }
                        }
                    }
                    //---------------------------------------------------------------

                    //------ получаем значение атрибута href у тэга A -------------
                    var nodesA = htmlDoc.DocumentNode.SelectNodes("//a");
                    if (nodesA != null)
                    {
                        foreach (var tag in nodesA)
                        {
                            if (tag.Attributes["href"] != null)
                            {
                                var link = tag.Attributes["href"].Value;
                                tagA += link + "\n";
                                TagA insTagA = new TagA
                                {
                                    UrlId = urllink.Id,
                                    Href  = link
                                };
                                tagAList.Add(insTagA);
                            }
                        }
                    }
                    //--------------------------------------------------------------

                    //------ получаем значение атрибута src у тэга img -------------
                    var nodesImg = htmlDoc.DocumentNode.SelectNodes("//img");
                    if (nodesImg != null)
                    {
                        foreach (var tag in nodesImg)
                        {
                            if (tag.Attributes["src"] != null)
                            {
                                var src = tag.Attributes["src"].Value;
                                tagImg += src + "\n";
                                TagImg tagImgIns = new TagImg
                                {
                                    UrlId = urllink.Id,
                                    Src   = src
                                };
                                tagImgList.Add(tagImgIns);
                            }
                        }
                    }
                    //---------------------------------------------------------------

                    //------ получаем значение атрибута src у тэга img -------------
                    var nodesH1 = htmlDoc.DocumentNode.SelectNodes("//h1");
                    if (nodesH1 != null)
                    {
                        foreach (var tag in nodesH1)
                        {
                            innerTextOfH1 += tag.InnerText + "\n";
                            int   index    = nodesH1[tag];
                            TagH1 tagH1Ins = new TagH1
                            {
                                UrlId  = urllink.Id,
                                H1Text = tag.InnerText
                            };
                            tagH1List.Add(tagH1Ins);
                        }
                    }
                    //---------------------------------------------------------------

                    StringBuilder newContent = new StringBuilder();
                    newContent.AppendLine("URL: " + url +
                                          "\nДата проверки: " + date +
                                          "\nСтатус: " + lblResult +
                                          "\nОписание статуса: " + lblStatusDescription +
                                          "\nКод статуса: " + lblCause +
                                          "\nTitle: " + innerTextOfTitle +
                                          "\nContent: " + contentOfTagMeta + "\n" +
                                          "\nТэги A: \n" + tagA + "\n" +
                                          "\nТэги Img: \n" + tagImg +
                                          "\nТэги H1: \n" + innerTextOfH1 +
                                          "\n");
                    all = newContent.ToString();

                    urllink.Url               = url;
                    urllink.Title             = innerTextOfTitle;
                    urllink.MetaContent       = contentOfTagMeta;
                    urllink.Status            = lblResult;
                    urllink.StatusDescription = lblStatusDescription;
                    urllink.StatusCode        = lblCause;
                    urllink.DateOfParsing     = date;

                    using (var db = new ParsingResultsEntities())
                    {
                        db.Urls.Add(urllink);
                        db.TagH1.AddRange(tagH1List);
                        db.TagA.AddRange(tagAList);
                        db.TagImg.AddRange(tagImgList);
                        db.SaveChanges();
                    }
                }
                response.Close();
                request.Abort();
                return(all); //возвращаем полученные данные в интерфейс приложения
            }

            catch (WebException ex)
            {
                lblResult            = @"Сайт не доступен";
                lblStatusDescription = ex.Message;

                //---делаем проверку является ли код ошибки HttpStatusCode или WebExceptionStatus
                if (((HttpWebResponse)ex.Response) != null)
                {
                    lblCause = ((int)(((HttpWebResponse)ex.Response).StatusCode)).ToString();
                }
                else
                {
                    lblCause = ((int)(ex.Status)).ToString();
                }
                //-------------------------------------------------------------------------------

                StringBuilder newContent = new StringBuilder();
                newContent.AppendLine("URL: " + url +
                                      "\nДата проверки: " + date +
                                      "\nСтатус: " + lblResult +
                                      "\nОписание статуса: " + lblStatusDescription +
                                      "\nКод статуса: " + lblCause + "\n");
                all = newContent.ToString();

                using (var db = new ParsingResultsEntities())
                {
                    db.Urls.Add(urllink);
                    db.SaveChanges();
                }

                return(all);
            }
        }