Example #1
0
        /// <summary>
        /// Gets the list of recent project activity
        /// </summary>
        /// <param name="projectId">Project Id</param>
        /// <param name="activityTypes">The activity types you want to return.</param>
        /// <returns>
        /// List of all the project activities of the desired types.
        /// </returns>
        public List <ProjectActivity> GetRecentActivity(int projectId, params RecentActivityType[] activityTypes)
        {
            StringBuilder sb = new StringBuilder();

            foreach (RecentActivityType activityType in activityTypes)
            {
                switch (activityType)
                {
                case RecentActivityType.Issues:
                    sb.Append("&show_issues=1");
                    break;

                case RecentActivityType.Changesets:
                    sb.Append("&show_changesets=1");
                    break;

                case RecentActivityType.News:
                    sb.Append("&show_news=1");
                    break;

                case RecentActivityType.Documents:
                    sb.Append("&show_documents=1");
                    break;

                case RecentActivityType.Files:
                    sb.Append("&show_files=1");
                    break;

                case RecentActivityType.WikiEdits:
                    sb.Append("&show_wiki_edits=1");
                    break;

                case RecentActivityType.Messages:
                    sb.Append("&show_messages=1");
                    break;
                }
            }

            XhtmlPage page = new XhtmlPage(this.httpHelper.GetWebRequest(this.ConstructUri(String.Format(RecentActivitiesRelativeUri, projectId, sb))));
            List <ProjectActivity> activities = new List <ProjectActivity>();

            foreach (AtomEntry entry in AtomParser.ParseFeed(page.XmlDocument))
            {
                activities.Add(new ProjectActivity
                {
                    Title       = entry.Title,
                    Content     = entry.Content,
                    Url         = entry.Id,
                    Updated     = DateTime.Parse(entry.Updated),
                    AuthorName  = entry.Author.Name,
                    AuthorEmail = entry.Author.Email
                });
            }

            return(activities);
        }
Example #2
0
        /// <summary>
        /// Gets the list of all the available issues
        /// </summary>
        /// <param name="projectId">Project Id</param>
        /// <returns>List of all the available issues for the project</returns>
        public List <Issue> GetIssues(int projectId)
        {
            if (_cache.GetIssues(projectId) != null)
            {
                return(_cache.GetIssues(projectId));
            }
            XhtmlPage    page   = new XhtmlPage(this.httpHelper.GetWebRequest(this.ConstructUri(String.Format(IssueListRelativeUri, projectId))));
            List <Issue> issues = new List <Issue>();

            foreach (AtomEntry entry in AtomParser.ParseFeed(page.XmlDocument))
            {
                issues.Add(new Issue
                {
                    Id      = entry.NumericId,
                    Subject = entry.Title
                });
            }

            _cache.SetIssues(projectId, issues);
            return(issues);
        }
Example #3
0
        /// <summary>
        /// Gets the list of all the available projects
        /// </summary>
        /// <returns>List of all the projects available to the user</returns>
        public List <Project> GetProjects()
        {
            if (_cache.Projects != null)
            {
                return(_cache.Projects);
            }

            XhtmlPage      page     = new XhtmlPage(this.httpHelper.GetWebRequest(this.ConstructUri(ProjectListRelativeUri)));
            List <Project> projects = new List <Project>();

            foreach (AtomEntry entry in AtomParser.ParseFeed(page.XmlDocument))
            {
                projects.Add(new Project
                {
                    Id   = entry.NumericId,
                    Name = entry.Title
                });
            }

            _cache.Projects = projects;
            return(projects);
        }