Ejemplo n.º 1
0
        public void TestParseSubjectLink(
            string subjectAndGroup,
            string expectedSubject,
            string expectedGroup
            )
        {
            SubjectLink link = LinkHelper.ParseSubjectLink(subjectAndGroup, "");

            Assert.AreEqual(expectedSubject, link.SubjectName);
            Assert.AreEqual(expectedGroup, link.Group);
        }
Ejemplo n.º 2
0
        public static SubjectLink ParseSubjectLink(string subjectAndGroup, string url)
        {
            SubjectLink link = new SubjectLink();

            link.Url = url;

            var match = Regex.Match(subjectAndGroup, "([^\\(]+) \\(([А-Я0-9-]+)\\)");

            link.SubjectName = match.Groups[1].Captures[0].Value;
            link.Group       = match.Groups[2].Captures[0].Value;

            return(link);
        }
        public override void Perform()
        {
            this.PerformGet("search[fio]=" + Regex.Replace(HttpUtility.UrlEncode(this.TutorName), "%2b", "+"));
            var nodes = this.DocumentNode.SelectNodes("//h3[@class='search-teacher-title']");

            if (nodes == null)
            {
                return;
            }

            foreach (var tutorNode in nodes)
            {
                var nextSibling = tutorNode.NextSibling;
                if (nextSibling.ChildNodes.Count == 0)
                {
                    nextSibling = nextSibling.NextSibling;
                }

                var rows = nextSibling.SelectNodes(".//tr");

                foreach (var row in rows)
                {
                    var moduleLinkCollection = row.SelectNodes(".//a[text()='М']");

                    if (moduleLinkCollection == null)
                    {
                        continue;
                    }

                    var moduleLink      = moduleLinkCollection[0];
                    var subjectAndGroup = row.SelectNodes("./td[7]/span[@class='false-link']")[0];

                    string moduleLinkHref        = LinkHelper.ToAbsolute(moduleLink.Attributes["href"].Value);
                    string subjectAndGroupString = LinkHelper.CleanSpaces(subjectAndGroup.InnerText);

                    SubjectLink link = LinkHelper.ParseSubjectLink(
                        subjectAndGroupString,
                        moduleLinkHref
                        );

                    this.Subjects.Add(link);
                }
            }
        }
 /// <summary>
 /// select subject tab
 /// </summary>
 public void SelectSubjectTab()
 {
     SubjectLink.Wait(3).Click();
 }