Beispiel #1
0
        public static List <KeyValuePair <string, string> > ParseProjectHostAndUsername(string projectHostUsernamePair)
        {
            var projectHostsRegex = new Regex(@"(^|,)(?<ProjectHost>(([^:])*.{0,1})):");
            var projects          = RegexUtilities.GetTokenStringList(projectHostsRegex.Match(projectHostUsernamePair), "ProjectHost");

            var usernameRegex = new Regex(@":(?<UserName>(([^$|^,])*))");
            var usernames     = RegexUtilities.GetTokenStringList(usernameRegex.Match(projectHostUsernamePair), "UserName");

            if (projects == null || usernames == null || projects.Count != usernames.Count)
            {
                throw new RestException(new KeyValuePair <string, string>("project-host:username", string.Format("project-host:username pairs could not be resolved.")));
            }

            var hostAndUsername = new List <KeyValuePair <string, string> >();

            for (int i = 0; i < projects.Count; i++)
            {
                if (projects[i] != null && usernames[i] != null)
                {
                    hostAndUsername.Add(new KeyValuePair <string, string>(projects[i], usernames[i]));
                }
            }

            return(hostAndUsername);
        }
        public List <string> GetEducationCertificates()
        {
            var educationCertificateRegex = new Regex(@"name=""eduEntry(?:[\s\w><=""/\-\?&%\+\*]+)h4>(?<EducationCertificate>([^<]+))<(?:[\s\w><=""/\-\?\+&%,]+)href(?:[^>]+)>(?<EducationCertificate>([^<]+))", RegexOptions.Multiline);
            var educationCertificates     = RegexUtilities.GetTokenStringList(educationCertificateRegex.Match(pageSource), "EducationCertificate");

            if (educationCertificates == null || educationCertificates.Count == 0)
            {
                AddWarningError("Education.Certificates");
            }
            return(educationCertificates);
        }
        public List <string> GetPositionDescriptions()
        {
            var positionDescsRegex = new Regex(@"class=""postitle(?:[\s\w><=""/\-\?&%:\+\.;\(\)\#]+)desc""(?:[^>]+)*>(?<Description>(([^<]|<[^/]|</[^p])*.{0,2}))</p", RegexOptions.Multiline);
            var positionDescs      = RegexUtilities.GetTokenStringList(positionDescsRegex.Match(pageSource), "Description");

            if (positionDescs == null || positionDescs.Count == 0)
            {
                AddWarningError("Position.Descriptions");
            }
            return(positionDescs);
        }
        public List <string> GetPositionPeriods()
        {
            var positionPeriodsRegex = new Regex(@"class=""postitle(?:[\s\w><\=""'/\?&%\+\-:\.;\(\)]+)class=""period(?:[^>]+)>(?<Period>(([^<]|<[^/]|</[^p])*.{0,2}))</p", RegexOptions.Multiline);
            var positionPeriods      = RegexUtilities.GetTokenStringList(positionPeriodsRegex.Match(pageSource), "Period");

            if (positionPeriods == null || positionPeriods.Count == 0)
            {
                AddWarningError("Position.Periods");
            }
            return(positionPeriods);
        }
        public List <string> GetPositionCompanies()
        {
            var positionCompaniesRegex = new Regex(@"class=""postitle(?:[\s\w><=""/\?&%\+\-:\.]+)(class=""company-profile""><span>|name=""company""(?:[^>]+)>)(?<Company>([^<]+))", RegexOptions.Multiline);
            var positionCompanies      = RegexUtilities.GetTokenStringList(positionCompaniesRegex.Match(pageSource), "Company");

            if (positionCompanies == null || positionCompanies.Count == 0)
            {
                AddWarningError("Position.Companies");
            }
            return(positionCompanies);
        }
        public List <string> GetPositionTitles()
        {
            var positionTitlesRegex = new Regex(@"class=""position-title(?:[\s\w><=""/\?&%\+\-:\.]+)name=""title(?:[^>]+)>(?<PositionTitle>(([^<]|<[^/]|</[^a])*.{0,2}))</a", RegexOptions.Multiline);
            var positionTitles      = RegexUtilities.GetTokenStringList(positionTitlesRegex.Match(pageSource), "PositionTitle");

            if (positionTitles == null || positionTitles.Count == 0)
            {
                AddWarningError("Position.Titles");
            }
            return(positionTitles);
        }
        public List <string> GetEducationPeriods()
        {
            var educationPeriodRegex = new Regex(@"name=""eduEntry(?:[\s\w><\=""'/\?&%\+\-:\.;\(\)]+)class=""period(?:[^>]+)>(?<Period>(([^<]|<[^/]|</[^p])*.{0,2}))</p", RegexOptions.Multiline);
            var educationPeriods     = RegexUtilities.GetTokenStringList(educationPeriodRegex.Match(pageSource), "Period");

            if (educationPeriods != null)
            {
                educationPeriods = educationPeriods.ConvertAll(p => (p == null) ? null : Regex.Replace(p, @"<.*?>", string.Empty));
            }
            if (educationPeriods == null || educationPeriods.Count == 0)
            {
                AddWarningError("Education.Period");
            }
            return(educationPeriods);
        }
Beispiel #8
0
        public static List <Project> ParseProjects(this List <Project> projects, string pageSource)
        {
            var projectsRegex = new Regex(@"name=""owner([\s\w><=""']*)href=""(?<Project>(([^""])*.{0,1}))""", RegexOptions.Multiline);
            var rawProjects   = RegexUtilities.GetTokenStringList(projectsRegex.Match(pageSource), "Project");

            if (rawProjects == null || rawProjects.Count == 0)
            {
                throw new Exception("Projects could not be parsed. No projects were returned.");
            }

            foreach (string project in rawProjects)
            {
                if (!string.IsNullOrEmpty(project))
                {
                    projects.Add(new Project {
                        Name = project, Url = string.Format("http://code.google.com{0}", project)
                    });
                }
            }

            return(projects);
        }