コード例 #1
0
        public static TagA AbsoluteHref(this TagA tag)
        {
            var href = tag.Attribute("href").GetOrDefault(x => x.Value);

            tag.SetAttributeValue("href", CommonConst.SiteRoot + href);
            return(tag);
        }
コード例 #2
0
        public static string ToFbLink(this TagA tag)
        {
            tag.AbsoluteHref();
            var href = tag.GetHref();
            var text = tag.Value;

            return(text + " " + href);
        }
コード例 #3
0
        public static TagDiv Back(TagA link)
        {
            var text = link.FirstNode.ToString();

            link.RemoveNodes();
            link.Add(H.span.Class("signback")["< "]);
            link.Add(H.span.Class("textback")[text]);
            return(H.Div("back")[link]);
        }
コード例 #4
0
        public static string GetHref(this TagA tag)
        {
            var attr = tag.Attribute("href");

            if (attr == null)
            {
                return(string.Empty);
            }
            return(attr.Value);
        }
コード例 #5
0
        public static TagLi IndexMenu(string iconNumber, TagA link, bool hideArrow = false)
        {
            var text = " " + link.FirstNode.ToString();

            link.RemoveNodes();
            link.Add(Images.Mobile.Main("icon_{0}.png".FormatWith(iconNumber)).Class("icons"));
            link.Add(text);
            if (!hideArrow)
            {
                link.Add(Arrow());
            }
            return(H.li.Class("mainlinks")[link]);
        }
コード例 #6
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TagA = await _context.TagA.Include(s => s.WithTags).ThenInclude(an => an.Anime).AsNoTracking().FirstOrDefaultAsync(m => m.TagAID == id);

            if (TagA == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #7
0
ファイル: Delete.cshtml.cs プロジェクト: maZymaZe/MiniAnimeDB
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TagA = await _context.TagA.FirstOrDefaultAsync(m => m.TagAID == id);

            if (TagA == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #8
0
ファイル: MailService.cs プロジェクト: dKluev/Site
        public void TestAudit(Test test, TagA viewLink, string checkerTC, bool isReturn = false)
        {
            var    newTest = checkerTC.IsEmpty();
            string prefix;

            if (newTest)
            {
                if (test.HasChecker)
                {
                    prefix = "[Тест после исправления]";
                }
                else
                {
                    prefix = "[Тест от преподавателя]";
                }
            }
            else
            {
                prefix = "[Назначена проверка теста]";
            }
            var author      = EmployeeService.AllEmployees()[test.Author_TC];
            var authorEmail = new MailAddress(author.FirstSpecEmail);
            var body        = string.Empty;

            if (isReturn)
            {
                prefix      = "[Тест возвращен на редактирование]";
                authorEmail = null;
            }
            else
            {
                if (!newTest)
                {
                    body += "После проверки, напишите в ответ на это письмо ваши замечания по тесту.";
                }
            }
            body += H.br + viewLink.ToString() + H.br + "Автор теста: " + author.FullName;
            if (test.HasChecker)
            {
                var checker = EmployeeService.AllEmployees()[test.Checker_TC];
                body += H.br + "Проверяющий: " + checker.FullName;
            }
            var subject = prefix + test.Name;
            var main    = newTest ? testedit : GetEmployeeMail(checkerTC);

            Send(testedit, main, body, subject, authorEmail, newTest ? null : testedit);
        }
コード例 #9
0
ファイル: Delete.cshtml.cs プロジェクト: maZymaZe/MiniAnimeDB
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TagA = await _context.TagA.FindAsync(id);

            if (TagA != null)
            {
                _context.TagA.Remove(TagA);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #10
0
ファイル: MailService.cs プロジェクト: dKluev/Site
        public void TestResult(User user, TagA test, List <TagA> courses, UserTest userTest)
        {
            if (user == null)
            {
                return;
            }
            var templateName = MailTemplates.TestResult;

            if (userTest.IsPass)
            {
                templateName = MailTemplates.TestResultSuccess;
            }
            var template = MailTemplateService.GetTemplate(templateName, user.FullName);
            var body     = TemplateEngine.GetText(template.Description,
                                                  new {
                Course = courses.Select(x => x.ToString()).JoinWith(", "),
                Test   = test.ToString()
            });

            Send(info, MailAddress(user), AddTestResultUtm(body), template.Name);
        }
コード例 #11
0
 public static TagA onfocus(this TagA tag, string value)
 {
     tag.OnFocus = value; return(tag);
 }
コード例 #12
0
 public static TagA charset(this TagA tag, Charset value)
 {
     tag.Charset = value; return(tag);
 }
コード例 #13
0
 public static TagA onblur(this TagA tag, string value)
 {
     tag.OnBlur = value; return(tag);
 }
コード例 #14
0
ファイル: BootHtmls.cs プロジェクト: dKluev/Site
 public static TagOl Bread(TagA link)
 {
     return(H.ol[H.li[link]].Class("breadcrumb"));
 }
コード例 #15
0
 public static TagA type(this TagA tag, MimeType value)
 {
     tag.Type = value; return(tag);
 }
コード例 #16
0
 public static TagA tabindex(this TagA tag, int value)
 {
     tag.TabIndex = value; return(tag);
 }
コード例 #17
0
 public static TagA hreflang(this TagA tag, LangCode value)
 {
     tag.HrefLang = value; return(tag);
 }
コード例 #18
0
 public static TagA @class(this TagA tag, string value)
 {
     tag.Class = value; return(tag);
 }
コード例 #19
0
 public static TagA style(this TagA tag, string value)
 {
     tag.Style = value; return(tag);
 }
コード例 #20
0
 public static TagA name(this TagA tag, string value)
 {
     tag.Name = value; return(tag);
 }
コード例 #21
0
 public static TagA id(this TagA tag, string value)
 {
     tag.Id = value; return(tag);
 }
コード例 #22
0
 public static TagA shape(this TagA tag, Shape value)
 {
     tag.Shape = value; return(tag);
 }
コード例 #23
0
 public static TagA rev(this TagA tag, LinkType value)
 {
     tag.Rev = value; return(tag);
 }
コード例 #24
0
 public static TagA target(this TagA tag, Target value)
 {
     tag.Target = value; return(tag);
 }
コード例 #25
0
 public static TagA OpenInDialog(this TagA tag)
 {
     return(tag.Class("not-link open-in-dialog"));
 }
コード例 #26
0
 public static TagA title(this TagA tag, string value)
 {
     tag.Title = value; return(tag);
 }
コード例 #27
0
 public static TagA Confirm(this TagA tag, string text)
 {
     tag.Onclick("if(confirm('{0}')) return true; else return false;"
                 .FormatWith(text));
     return(tag);
 }
コード例 #28
0
ファイル: Checker.cs プロジェクト: FaruhHub/WebParser
        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);
            }
        }
コード例 #29
0
 public static TagA coords(this TagA tag, Length[] value)
 {
     tag.Coords = value; return(tag);
 }
コード例 #30
0
 public static TagA href(this TagA tag, string value)
 {
     tag.Href = value; return(tag);
 }