/// <summary>
        /// Retrieves a TFS <see cref="Changeset"/> using the id provided and convert it to a <see cref="ChangesetSummary"/>.
        /// </summary>
        public static ChangesetSummary GetChangeSet(int id)
        {
            Changeset        changeset = UserContext.Current.VersionControlServer.GetChangeset(id);
            ChangesetSummary summary   = new ChangesetSummary()
            {
                Id      = changeset.ChangesetId,
                Date    = changeset.CreationDate,
                Message = changeset.Comment,
                User    = changeset.Committer,
                Changes = changeset.Changes
            };

            return(summary);
        }
        /// <summary>
        /// Retrieves a TFS <see cref="Changeset"/> using the id provided and convert it to a <see cref="ChangesetSummary"/>.
        /// </summary>
        public static ChangesetSummary GetChangeSet(int id)
        {
            Changeset changeset = UserContext.Current.VersionControlServer.GetChangeset(id);
            ChangesetSummary summary = new ChangesetSummary()
            {
                Id = changeset.ChangesetId,
                Date = changeset.CreationDate,
                Message = changeset.Comment,
                User = changeset.Committer,
                Changes = changeset.Changes
            };

            return summary;
        }
        /// <summary>
        /// Retrieves a list of all checkins for the past 7 days, for the user's currently selected project.
        /// </summary>
        /// <returns></returns>
        public static List <ChangesetSummary> RecentCheckins()
        {
            string path     = UserContext.Current.CurrentProject.Path;
            var    checkins = UserContext.Current.VersionControlServer.QueryHistory(
                path,
                VersionSpec.Latest,
                0,
                RecursionType.Full,
                null,
                new DateVersionSpec(DateTime.Now.AddDays(-7)),        // version from
                VersionSpec.Latest,                                   // version to
                int.MaxValue,                                         // maxcount
                true,
                true,
                true);

            List <ChangesetSummary> list = new List <ChangesetSummary>();

            foreach (Changeset item in checkins)
            {
                ChangesetSummary summary = new ChangesetSummary()
                {
                    Id      = item.ChangesetId,
                    Date    = item.CreationDate,
                    Message = item.Comment,
                    User    = item.Committer,
                    Changes = null
                };

                foreach (Change change in item.Changes)
                {
                    summary.Files.Add(change.Item.ArtifactUri.ToString());
                }

                list.Add(summary);
            }

            return(list);
        }
        /// <summary>
        /// Retrieves a list of all checkins for the past 7 days, for the user's currently selected project.
        /// </summary>
        /// <returns></returns>
        public static List<ChangesetSummary> RecentCheckins()
        {
            string path = UserContext.Current.CurrentProject.Path;
            var checkins = UserContext.Current.VersionControlServer.QueryHistory(
                            path,
                            VersionSpec.Latest,
                            0,
                            RecursionType.Full,
                            null,
                            new DateVersionSpec(DateTime.Now.AddDays(-7)), // version from
                            VersionSpec.Latest, // version to
                            int.MaxValue, // maxcount
                            true,
                            true,
                            true);

            List<ChangesetSummary> list = new List<ChangesetSummary>();
            foreach (Changeset item in checkins)
            {
                ChangesetSummary summary = new ChangesetSummary()
                {
                    Id = item.ChangesetId,
                    Date = item.CreationDate,
                    Message = item.Comment,
                    User = item.Committer,
                    Changes = null
                };

                foreach (Change change in item.Changes)
                {
                    summary.Files.Add(change.Item.ArtifactUri.ToString());
                }

                list.Add(summary);
            }

            return list;
        }