/// <summary> /// Retrieves changesets associated with a work item /// </summary> /// <param name="wi">The work item to retrieve changesets for</param> /// <param name="stub">The work item stub to add them to</param> private void GetChangesets(WorkItem wi, WorkItemStub stub) { //Loop through all of the links in the work item. Note that this is the links //not the work item links so this includes things like hyperlinks, versioned items //and changeset links for (int i = 0; i < wi.Links.Count; i++) { //Determine if this is an external link which is an indication of a changeset link if (wi.Links[i].BaseType == BaseLinkType.ExternalLink) { int cs_id; ExternalLink ex = (ExternalLink)wi.Links[i]; //We have a valid changeset link type if (ex.ArtifactLinkType.Equals(_wis.RegisteredLinkTypes[ArtifactLinkIds.Changeset])) { //Get the ID of the changeset ArtifactId artifact = LinkingUtilities.DecodeUri(ex.LinkedArtifactUri); cs_id = Convert.ToInt32(artifact.ToolSpecificId); //It is a changeset, validate that we haven't processed it already ChangesetStub c = stub.Changesets.Find( delegate(ChangesetStub s) { return(s.ID == cs_id); } ); //It wasn't found, process it if (c == null) { //It is a changeset so get the specific changeset Changeset cs = _vcs.GetChangeset(cs_id); ChangesetStub csStub = new ChangesetStub(); csStub.ID = cs_id; //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { //Add the files to the changeset stub FileChangeInfo fc = new FileChangeInfo(); fc.ChangeType = cs.Changes[j].ChangeType.ToString(); fc.FullPath = cs.Changes[j].Item.ServerItem; csStub.Files.Add(fc); //Check to see if we have added this file to the master list, //if we haven't, add it if (!_allFiles.Contains(fc.FileName)) { _allFiles.Add(fc.FileName); } } stub.Changesets.Add(csStub); //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { ChangesetFilesToWorkItems(cs.Changes[j].Item.ServerItem); } } } } } }
/// <summary> /// Retrieves changesets associated with a work item /// </summary> /// <param name="wi">The work item to retrieve changesets for</param> /// <param name="stub">The work item stub to add them to</param> private void GetChangesets(WorkItem wi, WorkItemStub stub) { //Loop through all of the links in the work item. Note that this is the links //not the work item links so this includes things like hyperlinks, versioned items //and changeset links for (int i = 0; i < wi.Links.Count; i++) { //Determine if this is an external link which is an indication of a changeset link if (wi.Links[i].BaseType == BaseLinkType.ExternalLink) { int cs_id; ExternalLink ex = (ExternalLink)wi.Links[i]; //We have a valid changeset link type if (ex.ArtifactLinkType.Equals(_wis.RegisteredLinkTypes[ArtifactLinkIds.Changeset])) { //Get the ID of the changeset ArtifactId artifact = LinkingUtilities.DecodeUri(ex.LinkedArtifactUri); cs_id = Convert.ToInt32(artifact.ToolSpecificId); //It is a changeset, validate that we haven't processed it already ChangesetStub c = stub.Changesets.Find( delegate(ChangesetStub s) { return s.ID == cs_id; } ); //It wasn't found, process it if (c == null) { //It is a changeset so get the specific changeset Changeset cs = _vcs.GetChangeset(cs_id); ChangesetStub csStub = new ChangesetStub(); csStub.ID = cs_id; //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { //Add the files to the changeset stub FileChangeInfo fc = new FileChangeInfo(); fc.ChangeType = cs.Changes[j].ChangeType.ToString(); fc.FullPath = cs.Changes[j].Item.ServerItem; csStub.Files.Add(fc); //Check to see if we have added this file to the master list, //if we haven't, add it if (!_allFiles.Contains(fc.FileName)) _allFiles.Add(fc.FileName); } stub.Changesets.Add(csStub); //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { ChangesetFilesToWorkItems(cs.Changes[j].Item.ServerItem); } } } } } }
/// <summary> /// Retrieves changesets associated with a work item /// </summary> /// <param name="wi">The work item to retrieve changesets for</param> /// <param name="stub">The work item stub to add them to</param> private void GetChangesets(WorkItem wi, WorkItemStub stub) { //Loop through all of the links in the work item. Note that this is the links //not the work item links so this includes things like hyperlinks, versioned items //and changeset links for (int i = 0; i < wi.Links.Count; i++) { //Determine if this is an external link which is an indication of a changeset link if (wi.Links[i].BaseType == BaseLinkType.ExternalLink) { int cs_id; ExternalLink ex = (ExternalLink)wi.Links[i]; //Try to get the changeset ID by parsing the end of the linked artifact URI //For a changeset this will always be a numeric value if (int.TryParse(ex.LinkedArtifactUri.Substring(ex.LinkedArtifactUri.LastIndexOf('/') + 1), out cs_id)) { //It is a changeset, validate that we haven't processed it already ChangesetStub c = stub.Changesets.Find( delegate(ChangesetStub s) { return(s.ID == cs_id); } ); //It wasn't found, process it if (c == null) { //It is a changeset so get the specific changeset Changeset cs = _vcs.GetChangeset(cs_id); ChangesetStub csStub = new ChangesetStub(); csStub.ID = cs_id; //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { //Add the files to the changeset stub FileChangeInfo fc = new FileChangeInfo(); fc.ChangeType = cs.Changes[j].ChangeType.ToString(); fc.FullPath = cs.Changes[j].Item.ServerItem; csStub.Files.Add(fc); //Check to see if we have added this file to the master list, //if we haven't, add it if (!_allFiles.Contains(fc.FileName)) { _allFiles.Add(fc.FileName); } } stub.Changesets.Add(csStub); //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { ChangesetFilesToWorkItems(cs.Changes[j].Item.ServerItem); } } } } } }
/// <summary> /// Retrieves changesets associated with a work item /// </summary> /// <param name="wi">The work item to retrieve changesets for</param> /// <param name="stub">The work item stub to add them to</param> private void GetChangesets(WorkItem wi, WorkItemStub stub) { //Loop through all of the links in the work item. Note that this is the links //not the work item links so this includes things like hyperlinks, versioned items //and changeset links for (int i = 0; i < wi.Links.Count; i++) { //Determine if this is an external link which is an indication of a changeset link if (wi.Links[i].BaseType == BaseLinkType.ExternalLink) { int cs_id; ExternalLink ex = (ExternalLink)wi.Links[i]; //Try to get the changeset ID by parsing the end of the linked artifact URI //For a changeset this will always be a numeric value if (int.TryParse(ex.LinkedArtifactUri.Substring(ex.LinkedArtifactUri.LastIndexOf('/') + 1), out cs_id)) { //It is a changeset, validate that we haven't processed it already ChangesetStub c = stub.Changesets.Find( delegate(ChangesetStub s) { return s.ID == cs_id; } ); //It wasn't found, process it if (c == null) { //It is a changeset so get the specific changeset Changeset cs = _vcs.GetChangeset(cs_id); ChangesetStub csStub = new ChangesetStub(); csStub.ID = cs_id; //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { //Add the files to the changeset stub FileChangeInfo fc = new FileChangeInfo(); fc.ChangeType = cs.Changes[j].ChangeType.ToString(); fc.FullPath = cs.Changes[j].Item.ServerItem; csStub.Files.Add(fc); //Check to see if we have added this file to the master list, //if we haven't, add it if (!_allFiles.Contains(fc.FileName)) _allFiles.Add(fc.FileName); } stub.Changesets.Add(csStub); //Loop through the files in the changeset which is represented by the Changes for (int j = 0; j < cs.Changes.Count(); j++) { ChangesetFilesToWorkItems(cs.Changes[j].Item.ServerItem); } } } } } }