/// <summary> /// Gets the TSWA work item editor /// </summary> /// <param name="projectCollection">Team Project collection</param> /// <param name="workItemId">Work Item Id</param> /// <returns>Url to view the work item editor in TSWA</returns> public static Uri GetWorkItemEditorUri(TfsTeamProjectCollection projectCollection, int workItemId) { ArgumentValidation.ValidateObjectIsNotNull(projectCollection, "projectCollection"); var linkingService = GetHyperlinkService(projectCollection); return(linkingService.GetWorkItemEditorUrl(workItemId)); }
/// <summary> /// Gets the TSWA build details uri /// </summary> /// <param name="projectCollection">Team Project collection</param> /// <param name="buildUri">Build Uri</param> /// <returns>Url to view build details in TSWA</returns> public static Uri GetBuildDetailsUri(TfsTeamProjectCollection projectCollection, Uri buildUri) { ArgumentValidation.ValidateObjectIsNotNull(projectCollection, "projectCollection"); ArgumentValidation.ValidateTfsUri(buildUri, "buildUri", TfsUriType.Build); var linkingService = GetHyperlinkService(projectCollection); return(linkingService.GetViewBuildDetailsUrl(buildUri)); }
/// <summary> /// Clears all workspace mappings from a build definition /// </summary> /// <param name="buildDefinition">Build definition to clear.</param> /// <remarks>The build definition is not saved after the mappings are cleared.</remarks> public static void ClearWorkspaceMappings(IBuildDefinition buildDefinition) { // Validation ArgumentValidation.ValidateObjectIsNotNull(buildDefinition, "buildDefinition"); var buildWorkspaceMappings = buildDefinition.Workspace.Mappings; while (buildWorkspaceMappings.Count > 0) { buildWorkspaceMappings.Remove(buildWorkspaceMappings[0]); } }
/// <summary> /// Adds a new workspace mapping to an existing build definition /// </summary> /// <param name="buildDefinition">Build definition for the new mapping</param> /// <param name="localItem">Local path for the mapping</param> /// <param name="serverItem">Server path for the mapping</param> /// <param name="mappingType">Type of mapping (map or cloak)</param> /// <param name="depth">The Mapping Depth</param> /// <returns>The created workspace mapping</returns> /// <remarks>The build definition is not saved after the mapping is added.</remarks> public static IWorkspaceMapping AddWorkspaceMapping(IBuildDefinition buildDefinition, string localItem, string serverItem, WorkspaceMappingType mappingType, WorkspaceMappingDepth depth) { // Validation ArgumentValidation.ValidateObjectIsNotNull(buildDefinition, "buildDefinition"); ArgumentValidation.ValidateStringIsNotEmpty(localItem, "localPath"); ArgumentValidation.ValidateStringIsNotEmpty(serverItem, "serverPath"); var mapping = buildDefinition.Workspace.AddMapping(serverItem, localItem, mappingType, depth); return(mapping); }
/// <summary> /// Returns a work item by ID /// </summary> /// <param name="projectCollection">Tfs Project Collection that contains the work item.</param> /// <param name="workItemId">Id for the work item</param> /// <returns>The found work item.</returns> /// <exception cref="ArgumentException">Occurs when the work item id is not valid.</exception> public static WorkItem GetWorkItemById(TfsTeamProjectCollection projectCollection, int workItemId) { ArgumentValidation.ValidateObjectIsNotNull(projectCollection, "projectCollection"); if (workItemId <= 0) { // This is not a valid work item. throw new ArgumentException("Work Item Id is not valid", "workItemId"); } WorkItemStore store = projectCollection.GetService <WorkItemStore>(); var workItem = store.GetWorkItem(workItemId); return(workItem); }
/// <summary> /// Removes a specified local mapping from a build definition /// </summary> /// <param name="buildDefinition">Build definition to remove the mapping from.</param> /// <param name="localItem">Local mapping to remove.</param> /// <remarks>The build definition is not saved after the mappings are cleared.</remarks> public static void RemoveLocalMapping(IBuildDefinition buildDefinition, string localItem) { // Validation ArgumentValidation.ValidateObjectIsNotNull(buildDefinition, "buildDefinition"); ArgumentValidation.ValidateStringIsNotEmpty(localItem, "localItem"); var buildWorkspaceMappings = buildDefinition.Workspace.Mappings; foreach (var mapping in buildWorkspaceMappings) { if (mapping.LocalItem.Equals(localItem, StringComparison.OrdinalIgnoreCase)) { buildWorkspaceMappings.Remove(mapping); break; } } }
/// <summary> /// Gets the TSWA Linking Service for a project collection /// </summary> /// <param name="projectCollection">TFS Project Collection</param> /// <returns>TswaClientHyperlinkService</returns> public static TswaClientHyperlinkService GetHyperlinkService(TfsTeamProjectCollection projectCollection) { ArgumentValidation.ValidateObjectIsNotNull(projectCollection, "projectCollection"); return(projectCollection.GetService <TswaClientHyperlinkService>()); }