├── Help ├── Item.gif ├── Index.gif ├── Search.gif ├── Collapsed.gif ├── ExpandAll.bmp ├── Expanded.gif ├── Splitter.gif ├── SyncTOC.gif ├── favicon.ico ├── icons │ ├── CFW.gif │ ├── xna.gif │ ├── close.gif │ ├── note.gif │ ├── open.gif │ ├── favicon.ico │ ├── pencil.GIF │ ├── pubclass.gif │ ├── pubevent.gif │ ├── pubfield.gif │ ├── search.gif │ ├── security.gif │ ├── slMobile.gif │ ├── static.gif │ ├── alert_note.gif │ ├── info_icon.gif │ ├── privclass.gif │ ├── privevent.gif │ ├── privfield.gif │ ├── privmethod.gif │ ├── protclass.gif │ ├── protevent.gif │ ├── protfield.gif │ ├── protmethod.gif │ ├── pubmethod.gif │ ├── search_bk.gif │ ├── tabLeftBG.gif │ ├── tabRightBG.gif │ ├── 1_404_bullet.gif │ ├── 2_404_bullet.gif │ ├── alert_caution.gif │ ├── footer_slice.gif │ ├── online_icon.gif │ ├── privdelegate.gif │ ├── privextension.gif │ ├── privinterface.gif │ ├── privproperty.gif │ ├── privstructure.gif │ ├── protdelegate.gif │ ├── protextension.gif │ ├── protinterface.gif │ ├── protoperator.gif │ ├── protproperty.gif │ ├── protstructure.gif │ ├── pubdelegate.gif │ ├── pubextension.gif │ ├── pubinterface.gif │ ├── puboperator.gif │ ├── pubproperty.gif │ ├── pubstructure.gif │ ├── ui_om_expand.gif │ ├── alert_security.gif │ ├── privenumeration.gif │ ├── protenumeration.gif │ ├── pubenumeration.gif │ └── ui_om_collapse.gif ├── CloseSearch.png ├── CollapseAll.bmp ├── fti │ ├── FTI_122.json │ ├── FTI_119.json │ ├── FTI_104.json │ ├── FTI_117.json │ ├── FTI_98.json │ ├── FTI_108.json │ ├── FTI_111.json │ ├── FTI_103.json │ ├── FTI_101.json │ ├── FTI_114.json │ └── FTI_110.json ├── styles │ ├── branding-cs-CZ.css │ ├── branding-de-DE.css │ ├── branding-en-US.css │ ├── branding-es-ES.css │ ├── branding-fr-FR.css │ ├── branding-it-IT.css │ ├── branding-pl-PL.css │ ├── branding-pt-BR.css │ ├── branding-ru-RU.css │ ├── branding-tr-TR.css │ ├── branding-zh-CN.css │ ├── branding-zh-TW.css │ ├── branding-ja-JP.css │ └── branding-ko-KR.css ├── Web.Config ├── FillNode.php ├── SearchHelp.php ├── LoadIndexKeywords.php ├── TOC.css ├── html │ ├── 8486e7b6-b136-0af7-7c6a-a85acaef7386.htm │ ├── 48ac440e-2b2e-1519-a109-351a262ce738.htm │ ├── 37e69fc2-970a-8785-cab2-fd77523bf8f4.htm │ ├── 986df333-d2d4-78f7-5df5-0d5f8c4d7903.htm │ ├── 23807fca-bd28-d460-c720-74988ef0a845.htm │ ├── e3201568-3ff9-86c9-8136-6fdd1b8bc97b.htm │ ├── 1c663dcd-9276-b2da-1762-411f4c71e114.htm │ ├── fe25f5a0-11d4-4c8b-c717-f662ddd4fba7.htm │ ├── edbc8ac6-4dd1-3a54-71a5-50e0fb0e5cfe.htm │ ├── f39385a5-359e-07a8-d6c0-62ba9d936a97.htm │ └── b28561b2-3b4d-99cd-0bd4-369e4a72ab00.htm ├── FillNode.aspx └── LoadIndexKeywords.aspx ├── TfsApi ├── obj │ └── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ └── DesignTimeResolveAssemblyReferencesInput.cache ├── Administration │ ├── Enums │ │ ├── eStructureType.cs │ │ ├── eReportingActions.cs │ │ └── eSharePointActions.cs │ ├── Dto │ │ ├── ProjectDetail.cs │ │ ├── Collection.cs │ │ ├── ProjectArea.cs │ │ ├── ProjectIteration.cs │ │ └── ProcessTemplate.cs │ ├── Contracts │ │ ├── IGlobalList.cs │ │ ├── ITfsCredentials.cs │ │ ├── IAreaManager.cs │ │ ├── ITeamManager.cs │ │ ├── ITfsTeam.cs │ │ ├── ITeamProjectCollections.cs │ │ ├── IIterationManager.cs │ │ └── IProcessTemplates.cs │ ├── GlobalListFactory.cs │ ├── AreaManagerFactory.cs │ ├── TeamManagerFactory.cs │ ├── IterationManagerFactory.cs │ ├── TeamProjectFactory.cs │ ├── Helpers │ │ └── TeamFoundationIdentityHelper.cs │ ├── ProcessTemplateFactory.cs │ ├── TeamProjectCollectionFactory.cs │ └── TfsTeamProjectCollectionFactory.cs ├── TestManagement │ ├── Contracts │ │ ├── ITestCaseStep.cs │ │ ├── ITestSuite.cs │ │ ├── ITestSuiteManager.cs │ │ └── ITestCase.cs │ ├── Workers │ │ ├── TestCaseStep.cs │ │ ├── TestSuite.cs │ │ └── TestCase.cs │ ├── DTO │ │ └── TestCaseConflict.cs │ ├── TestCaseFactory.cs │ ├── TestSuiteFactory.cs │ ├── TestCaseStepFactory.cs │ ├── TestSuiteManagerFactory.cs │ └── Exceptions │ │ └── TestCaseConflictException.cs ├── WorkItemTracking │ ├── Delegates │ │ └── WorkItemStoreWork.cs │ └── WorkItemStoreFactory.cs ├── Queries │ ├── Contracts │ │ └── IQueryRunner.cs │ ├── QueryRunnerFactory.cs │ └── Workers │ │ └── QueryRunner.cs ├── Extensions │ ├── PropertyInfoExtensions.cs │ └── TfsTeamProjectCollectionExtensions.cs ├── Contracts │ └── ITfsCredentials.cs ├── packages.config ├── CredentialProviders │ ├── WindowsCredentials.cs │ └── BasicCredential.cs ├── Utilities │ ├── CmdUtility.cs │ ├── HtmlRemovalUtility.cs │ └── StreamUtility.cs ├── Api.cs ├── Properties │ └── AssemblyInfo.cs ├── Defaults.cs └── app.config ├── TfsApi.Tests ├── obj │ └── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ └── DesignTimeResolveAssemblyReferencesInput.cache ├── TestSuiteManagerTests.cs ├── Properties │ └── AssemblyInfo.cs ├── Assembly_Initialize_CleanUp.cs ├── TestConstants.cs └── TeamManagerTests.cs ├── DocFile.shfbproj_Gordon ├── Nuget ├── TfsApi.1.4.nupkg └── source │ └── 1.4 │ ├── TfsApi.1.4.nupkg │ ├── lib │ └── net45 │ │ └── TfsApi.dll │ └── TfsApi.1.4.nuspec ├── DocFile.shfbproj_GordonB ├── Assembly ├── Telerik.JustMock.dll ├── Microsoft.TeamFoundation.dll ├── 11.0 │ ├── Microsoft.TeamFoundation.dll │ ├── Microsoft.TeamFoundation.Client.dll │ ├── Microsoft.TeamFoundation.Common.dll │ ├── Microsoft.TeamFoundation.DeleteTeamProject.dll │ ├── Microsoft.TeamFoundation.ProjectManagement.dll │ ├── Microsoft.TeamFoundation.TestManagement.Client.dll │ ├── Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll │ ├── Microsoft.TeamFoundation.WorkItemTracking.Client.dll │ └── Microsoft.TeamFoundation.WorkItemTracking.Common.dll ├── 12.0 │ ├── Microsoft.TeamFoundation.dll │ ├── Microsoft.TeamFoundation.Client.dll │ ├── Microsoft.TeamFoundation.Common.dll │ ├── Microsoft.VisualStudio.Services.Common.dll │ ├── Microsoft.TeamFoundation.DeleteTeamProject.dll │ ├── Microsoft.TeamFoundation.ProjectManagement.dll │ ├── Microsoft.TeamFoundation.TestManagement.Client.dll │ ├── Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll │ ├── Microsoft.TeamFoundation.WorkItemTracking.Client.dll │ └── Microsoft.TeamFoundation.WorkItemTracking.Common.dll ├── Microsoft.TeamFoundation.Client.dll ├── Microsoft.TeamFoundation.Common.dll └── Microsoft.TeamFoundation.ProjectManagement.dll ├── README.md ├── .gitattributes ├── LICENSE ├── TfsApi.sln ├── DocFile.shfbproj └── .gitignore /Help/Item.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Item.gif -------------------------------------------------------------------------------- /TfsApi/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TfsApi/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TfsApi/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Help/Index.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Index.gif -------------------------------------------------------------------------------- /Help/Search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Search.gif -------------------------------------------------------------------------------- /TfsApi.Tests/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TfsApi.Tests/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TfsApi.Tests/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Help/Collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Collapsed.gif -------------------------------------------------------------------------------- /Help/ExpandAll.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/ExpandAll.bmp -------------------------------------------------------------------------------- /Help/Expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Expanded.gif -------------------------------------------------------------------------------- /Help/Splitter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/Splitter.gif -------------------------------------------------------------------------------- /Help/SyncTOC.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/SyncTOC.gif -------------------------------------------------------------------------------- /Help/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/favicon.ico -------------------------------------------------------------------------------- /Help/icons/CFW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/CFW.gif -------------------------------------------------------------------------------- /Help/icons/xna.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/xna.gif -------------------------------------------------------------------------------- /Help/CloseSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/CloseSearch.png -------------------------------------------------------------------------------- /Help/CollapseAll.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/CollapseAll.bmp -------------------------------------------------------------------------------- /Help/icons/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/close.gif -------------------------------------------------------------------------------- /Help/icons/note.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/note.gif -------------------------------------------------------------------------------- /Help/icons/open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/open.gif -------------------------------------------------------------------------------- /DocFile.shfbproj_Gordon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/DocFile.shfbproj_Gordon -------------------------------------------------------------------------------- /Help/fti/FTI_122.json: -------------------------------------------------------------------------------- 1 | {"zipfilename":[2555911],"zipfilebytearray":[6488071],"zipfilestream":[15204359]} -------------------------------------------------------------------------------- /Help/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/favicon.ico -------------------------------------------------------------------------------- /Help/icons/pencil.GIF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pencil.GIF -------------------------------------------------------------------------------- /Help/icons/pubclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubclass.gif -------------------------------------------------------------------------------- /Help/icons/pubevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubevent.gif -------------------------------------------------------------------------------- /Help/icons/pubfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubfield.gif -------------------------------------------------------------------------------- /Help/icons/search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/search.gif -------------------------------------------------------------------------------- /Help/icons/security.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/security.gif -------------------------------------------------------------------------------- /Help/icons/slMobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/slMobile.gif -------------------------------------------------------------------------------- /Help/icons/static.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/static.gif -------------------------------------------------------------------------------- /Nuget/TfsApi.1.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Nuget/TfsApi.1.4.nupkg -------------------------------------------------------------------------------- /DocFile.shfbproj_GordonB: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/DocFile.shfbproj_GordonB -------------------------------------------------------------------------------- /Help/icons/alert_note.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/alert_note.gif -------------------------------------------------------------------------------- /Help/icons/info_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/info_icon.gif -------------------------------------------------------------------------------- /Help/icons/privclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privclass.gif -------------------------------------------------------------------------------- /Help/icons/privevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privevent.gif -------------------------------------------------------------------------------- /Help/icons/privfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privfield.gif -------------------------------------------------------------------------------- /Help/icons/privmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privmethod.gif -------------------------------------------------------------------------------- /Help/icons/protclass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protclass.gif -------------------------------------------------------------------------------- /Help/icons/protevent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protevent.gif -------------------------------------------------------------------------------- /Help/icons/protfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protfield.gif -------------------------------------------------------------------------------- /Help/icons/protmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protmethod.gif -------------------------------------------------------------------------------- /Help/icons/pubmethod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubmethod.gif -------------------------------------------------------------------------------- /Help/icons/search_bk.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/search_bk.gif -------------------------------------------------------------------------------- /Help/icons/tabLeftBG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/tabLeftBG.gif -------------------------------------------------------------------------------- /Help/icons/tabRightBG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/tabRightBG.gif -------------------------------------------------------------------------------- /Help/icons/1_404_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/1_404_bullet.gif -------------------------------------------------------------------------------- /Help/icons/2_404_bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/2_404_bullet.gif -------------------------------------------------------------------------------- /Help/icons/alert_caution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/alert_caution.gif -------------------------------------------------------------------------------- /Help/icons/footer_slice.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/footer_slice.gif -------------------------------------------------------------------------------- /Help/icons/online_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/online_icon.gif -------------------------------------------------------------------------------- /Help/icons/privdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privdelegate.gif -------------------------------------------------------------------------------- /Help/icons/privextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privextension.gif -------------------------------------------------------------------------------- /Help/icons/privinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privinterface.gif -------------------------------------------------------------------------------- /Help/icons/privproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privproperty.gif -------------------------------------------------------------------------------- /Help/icons/privstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privstructure.gif -------------------------------------------------------------------------------- /Help/icons/protdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protdelegate.gif -------------------------------------------------------------------------------- /Help/icons/protextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protextension.gif -------------------------------------------------------------------------------- /Help/icons/protinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protinterface.gif -------------------------------------------------------------------------------- /Help/icons/protoperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protoperator.gif -------------------------------------------------------------------------------- /Help/icons/protproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protproperty.gif -------------------------------------------------------------------------------- /Help/icons/protstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protstructure.gif -------------------------------------------------------------------------------- /Help/icons/pubdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubdelegate.gif -------------------------------------------------------------------------------- /Help/icons/pubextension.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubextension.gif -------------------------------------------------------------------------------- /Help/icons/pubinterface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubinterface.gif -------------------------------------------------------------------------------- /Help/icons/puboperator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/puboperator.gif -------------------------------------------------------------------------------- /Help/icons/pubproperty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubproperty.gif -------------------------------------------------------------------------------- /Help/icons/pubstructure.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubstructure.gif -------------------------------------------------------------------------------- /Help/icons/ui_om_expand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/ui_om_expand.gif -------------------------------------------------------------------------------- /Assembly/Telerik.JustMock.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/Telerik.JustMock.dll -------------------------------------------------------------------------------- /Help/icons/alert_security.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/alert_security.gif -------------------------------------------------------------------------------- /Help/icons/privenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/privenumeration.gif -------------------------------------------------------------------------------- /Help/icons/protenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/protenumeration.gif -------------------------------------------------------------------------------- /Help/icons/pubenumeration.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/pubenumeration.gif -------------------------------------------------------------------------------- /Help/icons/ui_om_collapse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Help/icons/ui_om_collapse.gif -------------------------------------------------------------------------------- /Help/styles/branding-cs-CZ.css: -------------------------------------------------------------------------------- 1 | /* Start CS-CZ locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-de-DE.css: -------------------------------------------------------------------------------- 1 | /* Start DE-DE locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-en-US.css: -------------------------------------------------------------------------------- 1 | /* Start EN-US locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-es-ES.css: -------------------------------------------------------------------------------- 1 | /* Start ES-ES locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-fr-FR.css: -------------------------------------------------------------------------------- 1 | /* Start FR-FR locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-it-IT.css: -------------------------------------------------------------------------------- 1 | /* Start IT-IT locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-pl-PL.css: -------------------------------------------------------------------------------- 1 | /* Start PL-PL locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-pt-BR.css: -------------------------------------------------------------------------------- 1 | /* Start PT-BR locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-ru-RU.css: -------------------------------------------------------------------------------- 1 | /* Start RU-RU locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Help/styles/branding-tr-TR.css: -------------------------------------------------------------------------------- 1 | /* Start TR-TR locale-specific CSS */ 2 | 3 | /* End locale-specific CSS */ 4 | -------------------------------------------------------------------------------- /Nuget/source/1.4/TfsApi.1.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Nuget/source/1.4/TfsApi.1.4.nupkg -------------------------------------------------------------------------------- /Assembly/Microsoft.TeamFoundation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/Microsoft.TeamFoundation.dll -------------------------------------------------------------------------------- /Nuget/source/1.4/lib/net45/TfsApi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Nuget/source/1.4/lib/net45/TfsApi.dll -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Tfs-Api 2 | ======= 3 | Also available on NuGet - https://www.nuget.org/packages/TfsApi/ 4 |
PM> Install-Package TfsApi 5 | -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.dll -------------------------------------------------------------------------------- /Assembly/Microsoft.TeamFoundation.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/Microsoft.TeamFoundation.Client.dll -------------------------------------------------------------------------------- /Assembly/Microsoft.TeamFoundation.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/Microsoft.TeamFoundation.Common.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.Client.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.Common.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.Client.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.Common.dll -------------------------------------------------------------------------------- /Assembly/Microsoft.TeamFoundation.ProjectManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/Microsoft.TeamFoundation.ProjectManagement.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.VisualStudio.Services.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.VisualStudio.Services.Common.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.DeleteTeamProject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.DeleteTeamProject.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.ProjectManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.ProjectManagement.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.DeleteTeamProject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.DeleteTeamProject.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.ProjectManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.ProjectManagement.dll -------------------------------------------------------------------------------- /TfsApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/TfsApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.TestManagement.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.TestManagement.Client.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.TestManagement.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.TestManagement.Client.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Client.dll -------------------------------------------------------------------------------- /Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/11.0/Microsoft.TeamFoundation.WorkItemTracking.Common.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Client.dll -------------------------------------------------------------------------------- /Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/Assembly/12.0/Microsoft.TeamFoundation.WorkItemTracking.Common.dll -------------------------------------------------------------------------------- /TfsApi.Tests/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GordonBeeming/Tfs-Api/HEAD/TfsApi.Tests/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /TfsApi/Administration/Enums/eStructureType.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration.Enums 2 | { 3 | internal enum eStructureType 4 | { 5 | Iteration = 0, 6 | 7 | Area = 1 8 | } 9 | } -------------------------------------------------------------------------------- /TfsApi/TestManagement/Contracts/ITestCaseStep.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.TestManagement.Contracts 2 | { 3 | public interface ITestCaseStep 4 | { 5 | int StepNumber { get; set; } 6 | 7 | string Actions { get; set; } 8 | 9 | string ExpectedResults { get; set; } 10 | 11 | int ExecutionType { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /TfsApi/WorkItemTracking/Delegates/WorkItemStoreWork.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.WorkItemTracking.Client; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace TfsApi.WorkItemTracking.Delegates 9 | { 10 | public delegate List WorkItemStoreWork(WorkItemStore store); 11 | } 12 | -------------------------------------------------------------------------------- /TfsApi/TestManagement/Workers/TestCaseStep.cs: -------------------------------------------------------------------------------- 1 | using TfsApi.TestManagement.Contracts; 2 | namespace TfsApi.TestManagement.Workers 3 | { 4 | internal class TestCaseStep : ITestCaseStep 5 | { 6 | public int StepNumber { get; set; } 7 | 8 | public string Actions { get; set; } 9 | 10 | public string ExpectedResults { get; set; } 11 | 12 | public int ExecutionType { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /TfsApi/Queries/Contracts/IQueryRunner.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.WorkItemTracking.Client; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace TfsApi.Queries.Contracts 8 | { 9 | public interface IQueryRunner 10 | { 11 | WorkItemCollection Execute(string query); 12 | 13 | WorkItemCollection ExecuteSavedQuery(string queryFullname); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Help/fti/FTI_119.json: -------------------------------------------------------------------------------- 1 | {"workitemstorefactory":[3473417,11730947,14942211,16646147,21299203,22020097],"workitemtracking":[3473411,11730946,14942211,15269890,16318465,16646145,21299201,22020097],"windowscredentials":[3997699,6094857,7208961,8847365,8912899,18808840],"workitemcollection":[4325383,5242887],"widening":[9306114],"workitemstore":[11730951,15269895],"workwithworkitemstore":[14942215,16646145,21299201],"workitemstorework":[14942215,15269895,16318465],"work":[14942215],"workitem":[15269895]} -------------------------------------------------------------------------------- /Help/fti/FTI_104.json: -------------------------------------------------------------------------------- 1 | {"hash":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"helplink":[917505,19922945],"help":[917505,19922945],"hresult":[917506,19922946],"hierarchy":[1835009,1900545,2490369,3473409,3801089,5963777,6094849,7274497,8454145,9437185,10223617,10813441,11075585,15007745,15990785,17694721,17825793,18612225,19136513,19660801,20119553,21168129,21495809]} -------------------------------------------------------------------------------- /TfsApi/TestManagement/DTO/TestCaseConflict.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TfsApi.TestManagement.DTO 7 | { 8 | public struct TestCaseConflict 9 | { 10 | public string Message { get; set; } 11 | public Microsoft.TeamFoundation.TestManagement.Client.ITestCase TfsTestCase { get; set; } 12 | public TfsApi.TestManagement.Contracts.ITestCase TestCase { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /TfsApi/TestManagement/Contracts/ITestSuite.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TfsApi.TestManagement.Contracts 7 | { 8 | public interface ITestSuite 9 | { 10 | string Name { get; set; } 11 | 12 | List TestSuites { get; set; } 13 | 14 | int NodeCount { get; set; } 15 | 16 | string Description { get; set; } 17 | 18 | List TestCases { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /TfsApi/Administration/Dto/ProjectDetail.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration.Dto 2 | { 3 | #region 4 | 5 | using System; 6 | 7 | #endregion 8 | 9 | public class ProjectDetail 10 | { 11 | public Uri CollectionUri { get; set; } 12 | 13 | public string ProjectName { get; set; } 14 | 15 | public Uri ProjectUri 16 | { 17 | get 18 | { 19 | return new Uri(CollectionUri + "/" + ProjectName); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /TfsApi/TestManagement/Workers/TestSuite.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.TestManagement.Workers 2 | { 3 | using System.Collections.Generic; 4 | using TfsApi.TestManagement.Contracts; 5 | 6 | internal class TestSuite : ITestSuite 7 | { 8 | public string Name { get; set; } 9 | 10 | public List TestSuites { get; set; } 11 | 12 | public int NodeCount { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public List TestCases { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /Help/fti/FTI_117.json: -------------------------------------------------------------------------------- 1 | {"uri":[7,1572873,1638409,3407879,4456455,4587521,4849665,4980737,6946823,7340039,7667719,10551303,11730951,11862023,12976135,14352395,14942215,15663111,17629195,18284545,20774919,21561351],"unmanaged":[786433,1310721,3211265,9895937,10027009,10158081,13172737,14024705,14811137,19202049,19529729],"used":[786433,9895937,12124161],"user":[917505,19922945],"uploadtemplate":[2359300,2555912,6488072,13172739,14024707,15204360],"username":[3145735,5046279,17891335,20643847],"unsigned":[6488066,14876674],"url":[10616833,11337729,14352391],"useexistingsite":[17235969]} -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /TfsApi/Administration/Enums/eReportingActions.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the eReportingActions.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Enums 9 | { 10 | public enum eReportingActions 11 | { 12 | None, 13 | 14 | CreateFolder 15 | } 16 | } -------------------------------------------------------------------------------- /TfsApi/Administration/Enums/eSharePointActions.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the eSharePointActions.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Enums 9 | { 10 | public enum eSharePointActions 11 | { 12 | None, 13 | 14 | UseExistingSite 15 | } 16 | } -------------------------------------------------------------------------------- /TfsApi/TestManagement/TestCaseFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TfsApi.TestManagement.Contracts; 7 | using TfsApi.TestManagement.Workers; 8 | 9 | namespace TfsApi.TestManagement 10 | { 11 | public static class TestCaseFactory 12 | { 13 | public static ITestCase CreateDefaultTestCase() 14 | { 15 | return new TestCase(); 16 | } 17 | 18 | internal static void Reset() 19 | { 20 | // nothing 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /TfsApi/Administration/Dto/Collection.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration.Dto 2 | { 3 | #region 4 | 5 | using System; 6 | 7 | #endregion 8 | 9 | public sealed class Collection 10 | { 11 | #region Public Properties 12 | 13 | public string CollectionDescription { get; set; } 14 | 15 | public string CollectionName { get; internal set; } 16 | 17 | public bool IsDefault { get; internal set; } 18 | 19 | public Guid TeamProjectCollectionID { get; set; } 20 | 21 | public Uri Url { get; internal set; } 22 | 23 | #endregion 24 | } 25 | } -------------------------------------------------------------------------------- /TfsApi/TestManagement/TestSuiteFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TfsApi.TestManagement.Contracts; 7 | using TfsApi.TestManagement.Workers; 8 | 9 | namespace TfsApi.TestManagement 10 | { 11 | public static class TestSuiteFactory 12 | { 13 | public static ITestSuite CreateDefaultTestSuite() 14 | { 15 | return new TestSuite(); 16 | } 17 | 18 | internal static void Reset() 19 | { 20 | // nothing 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /TfsApi/TestManagement/TestCaseStepFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TfsApi.TestManagement.Contracts; 7 | using TfsApi.TestManagement.Workers; 8 | 9 | namespace TfsApi.TestManagement 10 | { 11 | public static class TestCaseStepFactory 12 | { 13 | public static ITestCaseStep CreateDefaultTestCaseStep() 14 | { 15 | return new TestCaseStep(); 16 | } 17 | 18 | internal static void Reset() 19 | { 20 | // nothing 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Help/styles/branding-zh-CN.css: -------------------------------------------------------------------------------- 1 | /* Start ZH-CN locale-specific CSS */ 2 | body 3 | { 4 | font-family:MS YaHei, Simsun, Segoe UI, Verdana; 5 | } 6 | pre 7 | { 8 | font-family:Courier, "Courier New", Consolas, Monospace, 新宋体; 9 | } 10 | span.tt 11 | { 12 | font-family:Courier, "Courier New", Consolas, Monospace, 新宋体; 13 | } 14 | div.libCScode pre 15 | { 16 | font-family:Monospace, Courier New, Courier, 新宋体; 17 | } 18 | pre.ideCScode 19 | { 20 | font-family:Monospace, Courier New, Courier, 新宋体; 21 | } 22 | SPAN.code 23 | { 24 | font-family:Monospace, Courier New, Courier, 新宋体; 25 | } 26 | /* End locale-specific CSS */ 27 | -------------------------------------------------------------------------------- /Help/styles/branding-zh-TW.css: -------------------------------------------------------------------------------- 1 | /* Start ZH-TW locale-specific CSS */ 2 | body 3 | { 4 | font-family:MS JhengHei, MingLiU, Segoe UI, Verdana, Arial; 5 | } 6 | pre 7 | { 8 | font-family:Courier, "Courier New", Consolas, Monospace, 細明體; 9 | } 10 | span.tt 11 | { 12 | font-family:Courier, "Courier New", Consolas, Monospace, 細明體; 13 | } 14 | div.libCScode pre 15 | { 16 | font-family:Monospace, Courier New, Courier, 細明體; 17 | } 18 | pre.ideCScode 19 | { 20 | font-family:Monospace, Courier New, Courier, 細明體; 21 | } 22 | SPAN.code 23 | { 24 | font-family:Monospace, Courier New, Courier, 細明體; 25 | } 26 | /* End locale-specific CSS */ 27 | -------------------------------------------------------------------------------- /Help/styles/branding-ja-JP.css: -------------------------------------------------------------------------------- 1 | /* Start JA-JP locale-specific CSS */ 2 | body 3 | { 4 | font-family:Segoe UI, Verdana, Arial, MS Pゴシック; 5 | } 6 | pre 7 | { 8 | font-family:Courier, "Courier New", Consolas, Monospace, MS ゴシック; 9 | } 10 | span.tt 11 | { 12 | font-family:Courier, "Courier New", Consolas, Monospace, MS ゴシック; 13 | } 14 | div.libCScode pre 15 | { 16 | font-family:Monospace, Courier New, Courier, MS ゴシック; 17 | } 18 | pre.ideCScode 19 | { 20 | font-family:Monospace, Courier New, Courier, MS ゴシック; 21 | } 22 | SPAN.code 23 | { 24 | font-family:Monospace, Courier New, Courier, MS ゴシック; 25 | } 26 | /* End locale-specific CSS */ 27 | -------------------------------------------------------------------------------- /TfsApi/Extensions/PropertyInfoExtensions.cs: -------------------------------------------------------------------------------- 1 | #region 2 | 3 | using System.Collections.Generic; 4 | 5 | using Microsoft.TeamFoundation.Server; 6 | 7 | #endregion 8 | 9 | public static class PropertyInfoExtensions 10 | { 11 | #region Public Methods and Operators 12 | 13 | public static Dictionary ConvertToDictionary(this Property[] property) 14 | { 15 | var result = new Dictionary(); 16 | 17 | foreach (Property item in property) 18 | { 19 | result.Add(item.Name, item.Value); 20 | } 21 | 22 | return result; 23 | } 24 | 25 | #endregion 26 | } -------------------------------------------------------------------------------- /Help/styles/branding-ko-KR.css: -------------------------------------------------------------------------------- 1 | /* Start KO-KR locale-specific CSS */ 2 | body 3 | { 4 | font-family:Malgun Gothic, Segoe UI, Verdana; 5 | font-size:0.75em; /*9pt*/ 6 | } 7 | pre 8 | { 9 | font-family:Courier, "Courier New", Consolas, Monospace, 돋움체; 10 | } 11 | span.tt 12 | { 13 | font-family:Courier, "Courier New", Consolas, Monospace, 돋움체; 14 | } 15 | div.libCScode pre 16 | { 17 | font-family:Monospace, Courier New, Courier, 돋움체; 18 | } 19 | pre.ideCScode 20 | { 21 | font-family:Monospace, Courier New, Courier, 돋움체; 22 | } 23 | SPAN.code 24 | { 25 | font-family:Monospace, Courier New, Courier, 돋움체; 26 | } 27 | /* End locale-specific CSS */ 28 | -------------------------------------------------------------------------------- /TfsApi/Queries/QueryRunnerFactory.cs: -------------------------------------------------------------------------------- 1 | using TfsApi.Queries.Contracts; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace TfsApi.Queries 9 | { 10 | public static class QueryRunnerFactory 11 | { 12 | public static IQueryRunner CreateInstance(Uri requestUri, string projectName, TfsApi.Contracts.ITfsCredentials tfsCredentials = null) 13 | { 14 | return new QueryRunner(requestUri, projectName, tfsCredentials); 15 | } 16 | 17 | internal static void Reset() 18 | { 19 | // nothing 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Help/fti/FTI_98.json: -------------------------------------------------------------------------------- 1 | {"bool":[262148,655368,1966086,2097156,2752516,4718596,4915204,5701636,5767180,6422532,6619148,6684676,7405572,8978436,9764868,10878982,12451844,13238276,15532044,15728648,16384004,18415628,18808836,19267588,20709380,21757956,21823492],"boolean":[262147,655363,1310722,1966083,2097155,2752515,4718595,4915204,5701635,5767179,6422531,6619147,6684676,6881282,7405571,8978435,9764867,10878979,12386308,12451843,13238275,14811144,15532043,15728643,16384003,16711684,18415627,18808835,19202050,19267587,19529736,20709379,21757955,21823491],"byte":[2359297,6488070,13172737,14024705,14876677],"basiccredential":[3145737,5046281,5963785,7208961,11206667,13762563,17432587,17891337,20250627,20643849],"byref":[6619138,18415618]} -------------------------------------------------------------------------------- /TfsApi/TestManagement/Contracts/ITestSuiteManager.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.TestManagement.Client; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using TfsApi.TestManagement.DTO; 5 | namespace TfsApi.TestManagement.Contracts 6 | { 7 | public interface ITestSuiteManager 8 | { 9 | List LoadTestSuitesFromTestLinkExportFile(System.IO.FileInfo fi); 10 | 11 | List LoadTestSuitesFromTestLinkExportFileContents(string fileContents); 12 | 13 | List CreateTestSuites(List testSuites, ITestManagementTeamProject selectedProject, IStaticTestSuite staticTestSuite = null, bool throwExceptionIfTestCaseConflicts = true); 14 | } 15 | } -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/IGlobalList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TfsApi.Administration.Contracts 7 | { 8 | public interface IGlobalList 9 | { 10 | void ClearList(); 11 | 12 | List Items { get; } 13 | 14 | void LoadListFromServer(string globalListName); 15 | 16 | void AddToList(string value); 17 | 18 | void AddToListDistinct(string value); 19 | 20 | void SaveChanges(bool createIfNotExists); 21 | 22 | void RemoveFromList(string value); 23 | 24 | bool ValueExistsInList(string value); 25 | 26 | bool ExistsOnServer { get; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /TfsApi/Administration/GlobalListFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TfsApi.Administration.Workers; 7 | using TfsApi.Administration.Contracts; 8 | 9 | namespace TfsApi.Administration 10 | { 11 | public class GlobalListFactory 12 | { 13 | public static IGlobalList GetGlobalList(Uri requestUri, string globalListName, TfsApi.Contracts.ITfsCredentials tfsCredentials = null) 14 | { 15 | return new GlobalList(requestUri, globalListName, tfsCredentials); 16 | } 17 | 18 | internal static void Reset() 19 | { 20 | // nothing 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /TfsApi/TestManagement/Contracts/ITestCase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TfsApi.TestManagement.Contracts 7 | { 8 | public interface ITestCase 9 | { 10 | int InternalID { get; set; } 11 | 12 | string Name { get; set; } 13 | 14 | int NodeCount { get; set; } 15 | 16 | int ExternalID { get; set; } 17 | 18 | int Version { get; set; } 19 | 20 | string Description { get; set; } 21 | 22 | string PreConditions { get; set; } 23 | 24 | int ExecutionType { get; set; } 25 | 26 | int Importance { get; set; } 27 | 28 | string LinkInTestLink { get; set; } 29 | 30 | List Steps { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /TfsApi/TestManagement/Workers/TestCase.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.TestManagement.Workers 2 | { 3 | using System.Collections.Generic; 4 | using TfsApi.TestManagement.Contracts; 5 | 6 | internal class TestCase : ITestCase 7 | { 8 | public int InternalID { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public int NodeCount { get; set; } 13 | 14 | public int ExternalID { get; set; } 15 | 16 | public int Version { get; set; } 17 | 18 | public string Description { get; set; } 19 | 20 | public string PreConditions { get; set; } 21 | 22 | public int ExecutionType { get; set; } 23 | 24 | public int Importance { get; set; } 25 | 26 | public string LinkInTestLink { get; set; } 27 | 28 | public List Steps { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /Help/fti/FTI_108.json: -------------------------------------------------------------------------------- 1 | {"list":[393227,786433,1310721,2359297,6422542,6619144,6684680,6881282,7143445,7733255,8126471,8192001,9699335,9961493,11206657,11927563,12255241,12386306,12451847,13041673,14090247,14286859,14811137,15269895,15335431,15400967,15925257,16449543,16711681,18022401,19202049,19529729,19988491,20316171,21430279,22085633],"loadtestsuitesfromtestlinkexportfile":[851969,15335431,17367041],"loadtestsuitesfromtestlinkexportfilecontents":[851969,17367041,21430279],"link":[917505,19922945],"listareas":[1310721,8126471,19202049],"listcollections":[3211265,10027009,14090247],"listteams":[5177345,12451847,15138817],"linkintestlink":[6815745,9109505,17956871],"loadlistfromserver":[8060929,16056327,20512769],"loadtestsuites":[9240577,16121857,16449543],"listiterations":[9699335,9895937,10158081],"listteamprojectnames":[12648455,14811137,19529729],"listprocesstemplates":[13172737,14024705,15400967],"logoutput":[18415623]} -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/ITfsCredentials.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the ITfsCredentials.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Contracts 9 | { 10 | #region 11 | 12 | using System.Net; 13 | 14 | #endregion 15 | 16 | public interface ITfsCredentials 17 | { 18 | #region Public Methods and Operators 19 | 20 | /// 21 | /// Gets the credentials. 22 | /// 23 | /// 24 | ICredentials GetCredentials(); 25 | 26 | #endregion 27 | } 28 | } -------------------------------------------------------------------------------- /TfsApi/Administration/Dto/ProjectArea.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace TfsApi.Administration.Dto 7 | { 8 | using System.Web.Script.Serialization; 9 | 10 | public class ProjectArea 11 | { 12 | public string Name { get; set; } 13 | 14 | public List Children { get; set; } 15 | 16 | public bool Enabled { get; set; } 17 | 18 | public string FullPath { get; set; } 19 | 20 | [ScriptIgnore] 21 | public ProjectArea ParentProjectArea { get; set; } 22 | 23 | public string ParentUri { get; set; } 24 | 25 | public string Path { get; set; } 26 | 27 | public string ProjectUri { get; set; } 28 | 29 | public string StructureType { get; set; } 30 | 31 | public string Uri { get; set; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /TfsApi/Contracts/ITfsCredentials.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the ITfsCredentials.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Contracts 9 | { 10 | #region 11 | 12 | using Microsoft.TeamFoundation.Client; 13 | using System.Net; 14 | 15 | #endregion 16 | 17 | public interface ITfsCredentials 18 | { 19 | #region Public Methods and Operators 20 | 21 | /// 22 | /// Gets the credentials. 23 | /// 24 | /// 25 | TfsClientCredentials GetCredentials(); 26 | 27 | #endregion 28 | } 29 | } -------------------------------------------------------------------------------- /Nuget/source/1.4/TfsApi.1.4.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | TfsApi 5 | 1.4 6 | TFS API 7 | Gordon Beeming 8 | https://github.com/Gordon-Beeming/Tfs-Api 9 | false 10 | The TFS API project is a simple wrapper for the TFS API that currently exists, it is designed to try make is easier to use. 11 | en-ZA 12 | TFS, API 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /TfsApi/WorkItemTracking/WorkItemStoreFactory.cs: -------------------------------------------------------------------------------- 1 | using TfsApi.WorkItemTracking.Delegates; 2 | using Microsoft.TeamFoundation.Client; 3 | using Microsoft.TeamFoundation.WorkItemTracking.Client; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace TfsApi.WorkItemTracking 11 | { 12 | public static class WorkItemStoreFactory 13 | { 14 | public static WorkItemStore GetWorkItemStore(Uri requestUri, TfsApi.Contracts.ITfsCredentials tfsCredentials = null, bool bypassRules = false) 15 | { 16 | TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(requestUri); 17 | return new WorkItemStore(tfs, bypassRules ? WorkItemStoreFlags.BypassRules : WorkItemStoreFlags.None); 18 | } 19 | 20 | internal static void Reset() 21 | { 22 | // nothing 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Gordon Beeming 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /TfsApi/Administration/Dto/ProjectIteration.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration.Dto 2 | { 3 | #region 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Web.Script.Serialization; 8 | 9 | #endregion 10 | 11 | public class ProjectIteration 12 | { 13 | #region Public Properties 14 | 15 | public List Children { get; set; } 16 | 17 | public DateTime? FinishDate { get; set; } 18 | 19 | public string FullPath { get; set; } 20 | 21 | public string Name { get; set; } 22 | 23 | [ScriptIgnore] 24 | public ProjectIteration ParentProjectIteration { get; set; } 25 | 26 | public string ParentUri { get; set; } 27 | 28 | public string Path { get; set; } 29 | 30 | public string ProjectUri { get; set; } 31 | 32 | public Dictionary Properties { get; set; } 33 | 34 | public DateTime? StartDate { get; set; } 35 | 36 | public string StructureType { get; set; } 37 | 38 | public string Uri { get; set; } 39 | 40 | #endregion 41 | } 42 | } -------------------------------------------------------------------------------- /TfsApi/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Help/fti/FTI_111.json: -------------------------------------------------------------------------------- 1 | {"optional":[3,983046,2555907,2686979,3407875,4456451,5505042,6422534,6488067,6619142,6684678,6946819,7340035,7471107,7733257,10551299,10682371,11730947,12451843,14942211,15204355,15532038,18808835],"overload":[786433,2293761,2359297,2424833,2555905,3145729,3670017,4521985,4784129,4915201,5046273,5373953,5636097,5767169,6488065,6619137,6684673,6881281,8192001,11206657,12124161,12189697,12386305,15204353,15532033,16711681,17891329,18022401,18415617,20643841,22085633],"object":[917514,983047,1835009,1900545,2490369,3473409,3801089,3997707,4194315,4587531,4849675,5963777,6094849,6553611,7077899,7274497,8454145,8847371,9437185,9568267,9633793,10223617,10289160,10616843,10813441,11075585,11665419,12713995,13500427,13697035,14483467,14548998,15007745,15990785,17432587,17694721,17825793,18087947,18612225,19005451,19136513,19660801,19922945,20119553,20250635,20381702,21168129,21495809],"operations":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"overridden":[917506,10289154],"one":[917505,10289153],"occurs":[917505,9633793],"outattribute":[6619140],"operator":[9306118],"operators":[18087937,18743297]} -------------------------------------------------------------------------------- /Help/Web.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/IAreaManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using TfsApi.Administration.Dto; 6 | 7 | namespace TfsApi.Administration.Contracts 8 | { 9 | public interface IAreaManager : IDisposable 10 | { 11 | List FlattenAreas(List list); 12 | 13 | List ListAreas(); 14 | 15 | void AddNewArea(string areaPath, List enableforTfsTeams = null, bool includeChildren = true, bool refreshCache = false); 16 | 17 | void AddNewArea(string areaPath, Dictionary enableforTfsTeams, bool refreshCache = false); 18 | 19 | bool CheckIfPathAlreadyExists(string newAreaName); 20 | 21 | bool IsAreaPathEnabled(ITfsTeam tfsTeam, string areaName); 22 | 23 | void DeleteArea(ProjectArea projectArea, ProjectArea reAssignArea = null); 24 | 25 | void DeleteAreaUsingAreaPath(string areaPath, string reAssignAreaPath = null); 26 | 27 | ProjectArea FindProjectArea(string fullAreaPath); 28 | 29 | void EnableAreaPath(ITfsTeam tfsTeam, string areaName, bool includeChildren); 30 | 31 | void DisableAreaPath(ITfsTeam tfsTeam, string areaName); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /TfsApi/Extensions/TfsTeamProjectCollectionExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation; 2 | using Microsoft.TeamFoundation.Client; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | public static class TfsTeamProjectCollectionExtensions 10 | { 11 | public static TfsConfigurationServer GetConfigurationServer(this TfsTeamProjectCollection tfsTeamProjectCollection) 12 | { 13 | try 14 | { 15 | return tfsTeamProjectCollection.ConfigurationServer; 16 | } 17 | catch (TeamFoundationServiceUnavailableException ex) 18 | { 19 | if (tfsTeamProjectCollection.Name == tfsTeamProjectCollection.Uri.ToString() && tfsTeamProjectCollection.SessionId != Guid.Empty && ex.Message.Contains(@"The remote server returned an error: (404) Not Found.")) 20 | { 21 | throw new Exception("It is possible that no default collection is present on the server. Try setting the default collection or specifying the default collection in your Url. See inner exceptions for more details" + Environment.NewLine + Environment.NewLine, ex); 22 | } 23 | else 24 | { 25 | throw; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /TfsApi/CredentialProviders/WindowsCredentials.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the BasicCredential.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.CredentialProviders 9 | { 10 | #region 11 | 12 | using Microsoft.TeamFoundation.Client; 13 | using System.Net; 14 | using System.Security; 15 | using TfsApi.Contracts; 16 | 17 | #endregion 18 | 19 | public sealed class WindowsCredentials : ITfsCredentials 20 | { 21 | #region Fields 22 | 23 | bool _allowInteractive = false; 24 | 25 | #endregion 26 | 27 | #region Constructors and Destructors 28 | 29 | public WindowsCredentials(bool allowInteractive = false) 30 | { 31 | 32 | } 33 | 34 | #endregion 35 | 36 | #region Public Methods and Operators 37 | 38 | public TfsClientCredentials GetCredentials() 39 | { 40 | return new TfsClientCredentials(new WindowsCredential(), _allowInteractive); 41 | } 42 | 43 | #endregion 44 | } 45 | } -------------------------------------------------------------------------------- /TfsApi/TestManagement/TestSuiteManagerFactory.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.TestManagement 2 | { 3 | #region 4 | 5 | using System; 6 | using System.Collections.Concurrent; 7 | 8 | using TfsApi.Contracts; 9 | using TfsApi.TestManagement.Contracts; 10 | using TfsApi.TestManagement.Workers; 11 | 12 | #endregion 13 | 14 | public static class TestSuiteManagerFactory 15 | { 16 | #region Static Fields 17 | 18 | private static readonly ConcurrentDictionary TestSuiteManagers = new ConcurrentDictionary(); 19 | 20 | #endregion 21 | 22 | #region Public Methods and Operators 23 | 24 | public static ITestSuiteManager CreateTestSuiteMananger(Uri tfsCollectionUri, ITfsCredentials tfsCredentials = null) 25 | { 26 | ITestSuiteManager result; 27 | if (TestSuiteManagers.ContainsKey(tfsCollectionUri)) 28 | { 29 | result = TestSuiteManagers[tfsCollectionUri]; 30 | } 31 | else 32 | { 33 | result = new TestSuiteManager(tfsCollectionUri, tfsCredentials); 34 | TestSuiteManagers.AddOrUpdate(tfsCollectionUri, result, (key, oldValue) => result); 35 | } 36 | 37 | return result; 38 | } 39 | 40 | #endregion 41 | 42 | internal static void Reset() 43 | { 44 | TestSuiteManagers.Clear(); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /TfsApi/Utilities/CmdUtility.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Utilities 2 | { 3 | #region 4 | 5 | using System.Diagnostics; 6 | 7 | #endregion 8 | 9 | internal static class CmdUtility 10 | { 11 | #region Public Methods and Operators 12 | 13 | /// 14 | /// Executes the specified CMD lines. 15 | /// 16 | /// The CMD lines. 17 | /// The output. 18 | /// The error. 19 | public static void Execute(string cmdLines, out string output, out string error) 20 | { 21 | var processStartInfo = new ProcessStartInfo("cmd.exe"); 22 | processStartInfo.RedirectStandardInput = true; 23 | processStartInfo.RedirectStandardOutput = true; 24 | processStartInfo.RedirectStandardError = true; 25 | processStartInfo.UseShellExecute = false; 26 | 27 | Process process = Process.Start(processStartInfo); 28 | 29 | foreach (string line in cmdLines.Split('\n')) 30 | { 31 | process.StandardInput.WriteLine(line.Trim()); 32 | } 33 | 34 | process.StandardInput.Close(); // line added to stop process from hanging on ReadToEnd() 35 | 36 | output = process.StandardOutput.ReadToEnd(); 37 | error = process.StandardError.ReadToEnd(); 38 | } 39 | 40 | #endregion 41 | } 42 | } -------------------------------------------------------------------------------- /Help/FillNode.php: -------------------------------------------------------------------------------- 1 | load('WebTOC.xml'); 7 | $xpath = new DOMXPath($toc); 8 | $id = $_GET["Id"]; 9 | $nodes = $xpath->query("//HelpTOCNode[@Id='$id']/*"); 10 | if ($nodes->length == 0) 11 | { 12 | ?> 13 | TOC node not found! 14 | getAttribute("Id"); 20 | $url = $node->getAttribute("Url"); 21 | $title = $node->getAttribute("Title"); 22 | if (empty($url)) 23 | { 24 | $url = "#"; 25 | $target = ""; 26 | } 27 | else 28 | { 29 | $target = " target=\"TopicContent\""; 30 | } 31 | 32 | if ($node->hasChildNodes()) 33 | { 34 | ?> 35 |
36 | 37 | > 38 | 39 |
40 | 45 |
46 | 47 | > 48 |
49 | -------------------------------------------------------------------------------- /TfsApi/Api.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.Client; 2 | using Microsoft.TeamFoundation.Server; 3 | using Microsoft.TeamFoundation.WorkItemTracking.Client; 4 | using Microsoft.TeamFoundation.WorkItemTracking.Proxy; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using TfsApi.Administration; 11 | using TfsApi.Queries; 12 | using TfsApi.TestManagement; 13 | using TfsApi.WorkItemTracking; 14 | using TfsTeamProjectCollectionFactory = TfsApi.Administration.TfsTeamProjectCollectionFactory; 15 | namespace TfsApi 16 | { 17 | public static class Api 18 | { 19 | public static void Refresh() 20 | { 21 | //Administration 22 | AreaManagerFactory.Reset(); 23 | GlobalListFactory.Reset(); 24 | IterationManagerFactory.Reset(); 25 | ProcessTemplateFactory.Reset(); 26 | TeamManagerFactory.Reset(); 27 | TeamProjectFactory.Reset(); 28 | TfsTeamProjectCollectionFactory.Reset(); 29 | TeamProjectCollectionFactory.Reset(); 30 | 31 | //Queries 32 | QueryRunnerFactory.Reset(); 33 | 34 | //TestManagement 35 | TestCaseFactory.Reset(); 36 | TestCaseStepFactory.Reset(); 37 | TestSuiteFactory.Reset(); 38 | TestSuiteManagerFactory.Reset(); 39 | 40 | //WorkItemTracking 41 | WorkItemStoreFactory.Reset(); 42 | } 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /TfsApi.Tests/TestSuiteManagerTests.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the TeamProjectsTests.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Tests 9 | { 10 | #region 11 | 12 | using System.Diagnostics.CodeAnalysis; 13 | 14 | using Microsoft.VisualStudio.TestTools.UnitTesting; 15 | 16 | using TfsApi.TestManagement; 17 | using TfsApi.TestManagement.Contracts; 18 | 19 | #endregion 20 | 21 | [TestClass] 22 | [ExcludeFromCodeCoverage] 23 | public class TestSuiteManagerTests 24 | { 25 | #region Constants 26 | 27 | private const string TestProjectNameBase = "Project Page Tests"; 28 | 29 | #endregion 30 | 31 | #region Public Methods and Operators 32 | 33 | [TestMethod] 34 | [Priority(50)] 35 | public void ctor_InstanceOfITestSuiteManagerReturn() 36 | { 37 | // arrange 38 | 39 | // act 40 | ITestSuiteManager obj = TestSuiteManagerFactory.CreateTestSuiteMananger(TestConstants.TfsCollectionUri, TestConstants.DefaultCredentials); 41 | 42 | // assert 43 | Assert.IsInstanceOfType(obj, typeof(ITestSuiteManager)); 44 | } 45 | 46 | #endregion 47 | } 48 | } -------------------------------------------------------------------------------- /Help/fti/FTI_103.json: -------------------------------------------------------------------------------- 1 | {"globallistfactory":[3,6553605,15466497,16973832,19005443,19136521],"getgloballist":[7,6553601,19005441],"globallistname":[7,16056327],"garbage":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"getbaseexception":[917505,10289153],"gethashcode":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"getobjectdata":[917505,10289153],"gettype":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"gets":[917513,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,19922952,20250625,20381697],"generic":[983041,4915201,6422529,6619137,6684673,7143425,7733249,9961473],"guid":[1376265,2883595],"getmanager":[2162689,2686983,4063233,7471111,10682375,13434881,19595265,20905985,21889025],"getadministrators":[2424840,4521992,5177347,5636104,15138819,18022404],"getcredentials":[3932167,3997697,7012353,8847361,8912904,13762568,13959169,17432577,20250625],"getdefaultcredentials":[4194305,9568257,15663111],"getdefaultvisualstudioenvironment":[4194305,9568257,20774919],"getmembers":[5177345,15138817,19857415],"gettfsteam":[5177345,9043975,15138817],"getworkitemstore":[11730951,16646145,21299201],"getteamprojectsharepointuri":[12976135,14811137,19529729]} -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/ITeamManager.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.Framework.Client; 2 | using Microsoft.TeamFoundation.Server; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | 8 | namespace TfsApi.Administration.Contracts 9 | { 10 | public interface ITeamManager 11 | { 12 | void AddMemberToTeam(string teamName, string memberName); 13 | void AddMemberToTeam(string teamName, IdentityDescriptor descriptor); 14 | TfsApi.Administration.Contracts.ITfsTeam AddTeam(string teamName, string description = null, System.Collections.Generic.IDictionary properties = null); 15 | System.Collections.Generic.IEnumerable GetAdministrators(Microsoft.TeamFoundation.Client.TeamFoundationTeam teamFoundationTeam); 16 | System.Collections.Generic.IEnumerable GetAdministrators(string teamName); 17 | System.Collections.Generic.IEnumerable GetAdministrators(TfsApi.Administration.Contracts.ITfsTeam tfsTeam); 18 | System.Collections.Generic.IEnumerable GetMembers(); 19 | TfsApi.Administration.Contracts.ITfsTeam GetTfsTeam(string teamName); 20 | System.Collections.Generic.List ListTeams(bool ignoreCache = true); 21 | 22 | void DeleteTeam(string expectedTeamName); 23 | 24 | bool TeamExists(string expectedTeamName); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /TfsApi.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.22823.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TfsApi", "TfsApi\TfsApi.csproj", "{82DA2569-0717-4262-AC13-DD220890FEF3}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TfsApi.Tests", "TfsApi.Tests\TfsApi.Tests.csproj", "{47F646D6-9DB9-447B-B47D-31F34F1D384E}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {82DA2569-0717-4262-AC13-DD220890FEF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {82DA2569-0717-4262-AC13-DD220890FEF3}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {82DA2569-0717-4262-AC13-DD220890FEF3}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {82DA2569-0717-4262-AC13-DD220890FEF3}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {47F646D6-9DB9-447B-B47D-31F34F1D384E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {47F646D6-9DB9-447B-B47D-31F34F1D384E}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {47F646D6-9DB9-447B-B47D-31F34F1D384E}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {47F646D6-9DB9-447B-B47D-31F34F1D384E}.Release|Any CPU.Build.0 = Release|Any CPU 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(CodealikeProperties) = postSolution 29 | SolutionGuid = 00e70edf-a347-4f62-b84b-a27ffac767b8 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /TfsApi/Administration/Dto/ProcessTemplate.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the ProcessTemplate.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Dto 9 | { 10 | #region 11 | 12 | using Microsoft.TeamFoundation.Server; 13 | 14 | #endregion 15 | 16 | public sealed class ProcessTemplate 17 | { 18 | #region Public Properties 19 | 20 | public string Description { get; set; } 21 | 22 | public string Metadata { get; set; } 23 | 24 | public string Name { get; set; } 25 | 26 | public int Rank { get; set; } 27 | 28 | public string State { get; set; } 29 | 30 | public int TemplateId { get; set; } 31 | 32 | #endregion 33 | 34 | #region Public Methods and Operators 35 | 36 | public static implicit operator ProcessTemplate(TemplateHeader th) 37 | { 38 | return new ProcessTemplate { 39 | Description = th.Description, 40 | Metadata = th.Metadata, 41 | Name = th.Name, 42 | Rank = th.Rank, 43 | State = th.State, 44 | TemplateId = th.TemplateId 45 | }; 46 | } 47 | 48 | #endregion 49 | } 50 | } -------------------------------------------------------------------------------- /TfsApi/Administration/AreaManagerFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Concurrent; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using TfsApi.Administration.Contracts; 8 | using TfsApi.Administration.Dto; 9 | using TfsApi.Administration.Workers; 10 | using TfsApi.Contracts; 11 | 12 | namespace TfsApi.Administration 13 | { 14 | public static class AreaManagerFactory 15 | { 16 | #region Static Fields 17 | 18 | private static readonly ConcurrentDictionary AreaManagers = new ConcurrentDictionary(); 19 | 20 | #endregion 21 | 22 | #region Public Methods and Operators 23 | 24 | public static IAreaManager GetManager(ProjectDetail projectDetail, ITfsCredentials tfsCredentials = null) 25 | { 26 | IAreaManager result; 27 | if (AreaManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value != null) 28 | { 29 | result = AreaManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value; 30 | } 31 | else 32 | { 33 | result = new AreaManager(projectDetail, tfsCredentials); 34 | AreaManagers.AddOrUpdate(projectDetail, result, (key, oldValue) => result); 35 | } 36 | 37 | return result; 38 | } 39 | 40 | #endregion 41 | 42 | internal static void Reset() 43 | { 44 | AreaManagers.Clear(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /TfsApi/Administration/TeamManagerFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Concurrent; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using TfsApi.Administration.Dto; 8 | using TfsApi.Administration.Contracts; 9 | using TfsApi.Contracts; 10 | using TfsApi.Administration.Workers; 11 | 12 | namespace TfsApi.Administration 13 | { 14 | public static class TeamManagerFactory 15 | { 16 | #region Static Fields 17 | 18 | private static readonly ConcurrentDictionary TeamManagers = new ConcurrentDictionary(); 19 | 20 | #endregion 21 | 22 | #region Public Methods and Operators 23 | 24 | public static ITeamManager GetManager(ProjectDetail projectDetail, ITfsCredentials tfsCredentials = null) 25 | { 26 | ITeamManager result; 27 | if (TeamManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value != null) 28 | { 29 | result = TeamManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value; 30 | } 31 | else 32 | { 33 | result = new TeamManager(projectDetail, tfsCredentials); 34 | TeamManagers.AddOrUpdate(projectDetail, result, (key, oldValue) => result); 35 | } 36 | 37 | return result; 38 | } 39 | 40 | #endregion 41 | 42 | internal static void Reset() 43 | { 44 | TeamManagers.Clear(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /TfsApi/Administration/IterationManagerFactory.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration 2 | { 3 | #region 4 | 5 | using System.Collections.Concurrent; 6 | using System.Linq; 7 | 8 | using TfsApi.Administration.Contracts; 9 | using TfsApi.Administration.Dto; 10 | using TfsApi.Administration.Workers; 11 | using TfsApi.Contracts; 12 | 13 | #endregion 14 | 15 | public static class IterationManagerFactory 16 | { 17 | #region Static Fields 18 | 19 | private static readonly ConcurrentDictionary IterationManagers = new ConcurrentDictionary(); 20 | 21 | #endregion 22 | 23 | #region Public Methods and Operators 24 | 25 | public static IIterationManager GetManager(ProjectDetail projectDetail, ITfsCredentials tfsCredentials = null) 26 | { 27 | IIterationManager result; 28 | if (IterationManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value != null) 29 | { 30 | result = IterationManagers.FirstOrDefault(o => o.Key.CollectionUri == projectDetail.CollectionUri && o.Key.ProjectName == projectDetail.ProjectName).Value; 31 | } 32 | else 33 | { 34 | result = new IterationManager(projectDetail, tfsCredentials); 35 | IterationManagers.AddOrUpdate(projectDetail, result, (key, oldValue) => result); 36 | } 37 | 38 | return result; 39 | } 40 | 41 | #endregion 42 | 43 | internal static void Reset() 44 | { 45 | IterationManagers.Clear(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /Help/SearchHelp.php: -------------------------------------------------------------------------------- 1 | 14 | Nothing found 15 | $val) 48 | { 49 | $wordDictionary[$ftiWord] = $val; 50 | } 51 | } 52 | } 53 | } 54 | 55 | // Perform the search and return the results as a block of HTML 56 | $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle); 57 | echo $results; 58 | ?> -------------------------------------------------------------------------------- /TfsApi/Administration/TeamProjectFactory.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the TeamProjectFactory.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Collections.Concurrent; 14 | 15 | using TfsApi.Administration.Contracts; 16 | using TfsApi.Contracts; 17 | 18 | #endregion 19 | 20 | public static class TeamProjectFactory 21 | { 22 | #region Static Fields 23 | 24 | private static readonly ConcurrentDictionary TeamProjectManagers = new ConcurrentDictionary(); 25 | 26 | #endregion 27 | 28 | #region Public Methods and Operators 29 | 30 | public static ITeamProjects CreateTeamProjectMananger(Uri tfsCollectionUri, ITfsCredentials tfsCredentials = null) 31 | { 32 | ITeamProjects result; 33 | if (TeamProjectManagers.ContainsKey(tfsCollectionUri)) 34 | { 35 | result = TeamProjectManagers[tfsCollectionUri]; 36 | } 37 | else 38 | { 39 | result = new TeamProjects(tfsCollectionUri, tfsCredentials); 40 | TeamProjectManagers.AddOrUpdate(tfsCollectionUri, result, (key, oldValue) => result); 41 | } 42 | 43 | return result; 44 | } 45 | 46 | #endregion 47 | 48 | internal static void Reset() 49 | { 50 | TeamProjectManagers.Clear(); 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /TfsApi/Administration/Helpers/TeamFoundationIdentityHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace TfsApi.Administration.Helpers 8 | { 9 | #region 10 | 11 | using System; 12 | 13 | using Microsoft.TeamFoundation.Client; 14 | using Microsoft.TeamFoundation.Framework.Client; 15 | using Microsoft.TeamFoundation.Framework.Common; 16 | 17 | using TfsApi.Contracts; 18 | 19 | #endregion 20 | 21 | internal static class TeamFoundationIdentityHelper 22 | { 23 | #region Public Methods and Operators 24 | 25 | public static TeamFoundationIdentity GetTeamFoundationIdentity(string fullUserName, IdentitySearchFactor identitySearchFactor, TfsTeamProjectCollection tfsTeamProjectCollection) 26 | { 27 | IIdentityManagementService ims = (IIdentityManagementService)tfsTeamProjectCollection.GetService(typeof(IIdentityManagementService)); 28 | return ims.ReadIdentity(identitySearchFactor, fullUserName, MembershipQuery.Direct, ReadIdentityOptions.None); 29 | } 30 | 31 | public static TeamFoundationIdentity GetTeamFoundationIdentityFromDomainUsername(string domain, string username, TfsTeamProjectCollection tfsTeamProjectCollection) 32 | { 33 | return GetTeamFoundationIdentity(domain + "\\" + username, IdentitySearchFactor.AccountName, tfsTeamProjectCollection); 34 | } 35 | 36 | public static TeamFoundationIdentity GetTeamFoundationIdentity(string fullUserName, TfsTeamProjectCollection tfsTeamProjectCollection) 37 | { 38 | return GetTeamFoundationIdentity(fullUserName, IdentitySearchFactor.AccountName, tfsTeamProjectCollection); 39 | } 40 | 41 | #endregion 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /TfsApi/Administration/ProcessTemplateFactory.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the ProcessTemplateFactory.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Collections.Concurrent; 14 | 15 | using TfsApi.Administration.Contracts; 16 | using TfsApi.Contracts; 17 | 18 | #endregion 19 | 20 | public static class ProcessTemplateFactory 21 | { 22 | #region Static Fields 23 | 24 | private static readonly ConcurrentDictionary ProcessTemplateManagers = new ConcurrentDictionary(); 25 | 26 | #endregion 27 | 28 | #region Public Methods and Operators 29 | 30 | public static IProcessTemplates CreateProcessTemplateMananger(Uri tfsCollectionUri, ITfsCredentials tfsCredentials = null) 31 | { 32 | IProcessTemplates result; 33 | if (ProcessTemplateManagers.ContainsKey(tfsCollectionUri)) 34 | { 35 | result = ProcessTemplateManagers[tfsCollectionUri]; 36 | } 37 | else 38 | { 39 | result = new ProcessTemplates(tfsCollectionUri, tfsCredentials); 40 | ProcessTemplateManagers.AddOrUpdate(tfsCollectionUri, result, (key, oldValue) => result); 41 | } 42 | 43 | return result; 44 | } 45 | 46 | #endregion 47 | 48 | internal static void Reset() 49 | { 50 | ProcessTemplateManagers.Clear(); 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /TfsApi/Administration/TeamProjectCollectionFactory.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the TeamProjectCollectionFactory.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Collections.Concurrent; 14 | 15 | using TfsApi.Administration.Contracts; 16 | using TfsApi.Contracts; 17 | 18 | #endregion 19 | 20 | public static class TeamProjectCollectionFactory 21 | { 22 | #region Static Fields 23 | 24 | private static readonly ConcurrentDictionary TeamProjectCollectionManagers = new ConcurrentDictionary(); 25 | 26 | #endregion 27 | 28 | #region Public Methods and Operators 29 | 30 | public static ITeamProjectCollections CreateTeamProjectCollectionMananger(Uri tfsUri, ITfsCredentials tfsCredentials = null) 31 | { 32 | ITeamProjectCollections result; 33 | if (TeamProjectCollectionManagers.ContainsKey(tfsUri)) 34 | { 35 | result = TeamProjectCollectionManagers[tfsUri]; 36 | } 37 | else 38 | { 39 | result = new TeamProjectCollections(tfsUri, tfsCredentials); 40 | TeamProjectCollectionManagers.AddOrUpdate(tfsUri, result, (key, oldValue) => result); 41 | } 42 | 43 | return result; 44 | } 45 | 46 | #endregion 47 | 48 | internal static void Reset() 49 | { 50 | TeamProjectCollectionManagers.Clear(); 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /TfsApi/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the AssemblyInfo.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | #region 9 | 10 | using System.Reflection; 11 | using System.Runtime.InteropServices; 12 | 13 | #endregion 14 | 15 | // General Information about an assembly is controlled through the following 16 | // set of attributes. Change these attribute values to modify the information 17 | // associated with an assembly. 18 | [assembly: AssemblyTitle("TfsApi")] 19 | [assembly: AssemblyDescription("")] 20 | [assembly: AssemblyConfiguration("")] 21 | [assembly: AssemblyCompany("Binary Digit")] 22 | [assembly: AssemblyProduct("TfsApi")] 23 | [assembly: AssemblyCopyright("Copyright © Binary Digit 2013")] 24 | [assembly: AssemblyTrademark("")] 25 | [assembly: AssemblyCulture("")] 26 | 27 | // Setting ComVisible to false makes the types in this assembly not visible 28 | // to COM components. If you need to access a type in this assembly from 29 | // COM, set the ComVisible attribute to true on that type. 30 | [assembly: ComVisible(false)] 31 | 32 | // The following GUID is for the ID of the typelib if this project is exposed to COM 33 | [assembly: Guid("7f7cc9f4-15ff-4032-bcb1-29aebee07061")] 34 | 35 | // Version information for an assembly consists of the following four values: 36 | // Major Version 37 | // Minor Version 38 | // Build Number 39 | // Revision 40 | // You can specify all the values or you can default the Build and Revision Numbers 41 | // by using the '*' as shown below: 42 | [assembly: AssemblyVersion("1.5.*")] 43 | //[assembly: AssemblyVersion("1.0.0.0")] 44 | //[assembly: AssemblyFileVersion("1.0.0.0")] -------------------------------------------------------------------------------- /TfsApi.Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the AssemblyInfo.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | #region 9 | 10 | using System.Reflection; 11 | using System.Runtime.InteropServices; 12 | 13 | #endregion 14 | 15 | // General Information about an assembly is controlled through the following 16 | // set of attributes. Change these attribute values to modify the information 17 | // associated with an assembly. 18 | [assembly: AssemblyTitle("TfsApi.Tests")] 19 | [assembly: AssemblyDescription("")] 20 | [assembly: AssemblyConfiguration("")] 21 | [assembly: AssemblyCompany("Binary Digit")] 22 | [assembly: AssemblyProduct("TfsApi.Tests")] 23 | [assembly: AssemblyCopyright("Copyright © Binary Digit 2013")] 24 | [assembly: AssemblyTrademark("")] 25 | [assembly: AssemblyCulture("")] 26 | 27 | // Setting ComVisible to false makes the types in this assembly not visible 28 | // to COM components. If you need to access a type in this assembly from 29 | // COM, set the ComVisible attribute to true on that type. 30 | [assembly: ComVisible(false)] 31 | 32 | // The following GUID is for the ID of the typelib if this project is exposed to COM 33 | [assembly: Guid("5661839c-314f-45a3-8145-8853739ab5f9")] 34 | 35 | // Version information for an assembly consists of the following four values: 36 | // Major Version 37 | // Minor Version 38 | // Build Number 39 | // Revision 40 | // You can specify all the values or you can default the Build and Revision Numbers 41 | // by using the '*' as shown below: 42 | [assembly: AssemblyVersion("1.0.*")] 43 | //[assembly: AssemblyVersion("1.0.0.0")] 44 | //[assembly: AssemblyFileVersion("1.0.0.0")] -------------------------------------------------------------------------------- /TfsApi/CredentialProviders/BasicCredential.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the BasicCredential.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.CredentialProviders 9 | { 10 | #region 11 | 12 | using Microsoft.TeamFoundation.Client; 13 | using System.Net; 14 | using System.Security; 15 | using TfsApi.Contracts; 16 | 17 | #endregion 18 | 19 | public sealed class BasicCredential : ITfsCredentials 20 | { 21 | #region Fields 22 | 23 | private readonly NetworkCredential _networkCredential; 24 | 25 | #endregion 26 | 27 | #region Constructors and Destructors 28 | 29 | public BasicCredential(string userName, string password) 30 | { 31 | this._networkCredential = new NetworkCredential(userName, password); 32 | } 33 | 34 | public BasicCredential(string userName, SecureString password) 35 | { 36 | this._networkCredential = new NetworkCredential(userName, password); 37 | } 38 | 39 | public BasicCredential(string userName, SecureString password, string domain) 40 | { 41 | this._networkCredential = new NetworkCredential(userName, password, domain); 42 | } 43 | 44 | public BasicCredential(string userName, string password, string domain) 45 | { 46 | this._networkCredential = new NetworkCredential(userName, password, domain); 47 | } 48 | 49 | #endregion 50 | 51 | #region Public Methods and Operators 52 | 53 | public TfsClientCredentials GetCredentials() 54 | { 55 | return new TfsClientCredentials(new WindowsCredential(this._networkCredential)); 56 | } 57 | 58 | #endregion 59 | } 60 | } -------------------------------------------------------------------------------- /TfsApi/Administration/TfsTeamProjectCollectionFactory.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the TfsTeamProjectCollectionFactory.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Net; 14 | 15 | using Microsoft.TeamFoundation.Client; 16 | using Microsoft.TeamFoundation.Framework.Common; 17 | 18 | using TfsApi.Contracts; 19 | 20 | #endregion 21 | 22 | internal static class TfsTeamProjectCollectionFactory 23 | { 24 | #region Public Methods and Operators 25 | 26 | public static TfsTeamProjectCollection GetTeamProjectCollection(Uri tfsCollectionUri, ITfsCredentials tfsCredentials) 27 | { 28 | TfsTeamProjectCollection result; 29 | 30 | TfsClientCredentials credential = null; 31 | if (tfsCredentials != null) 32 | { 33 | credential = tfsCredentials.GetCredentials(); 34 | } 35 | else 36 | { 37 | if (Defaults.GetDefaultCredentials(tfsCollectionUri) != null) 38 | { 39 | credential = Defaults.GetDefaultCredentials(tfsCollectionUri).GetCredentials(); 40 | } 41 | } 42 | 43 | if (credential != null) 44 | { 45 | result = new TfsTeamProjectCollection(tfsCollectionUri, credential); 46 | 47 | result.Connect(ConnectOptions.IncludeServices); 48 | } 49 | else 50 | { 51 | result = new TfsTeamProjectCollection(tfsCollectionUri); 52 | } 53 | 54 | return result; 55 | } 56 | 57 | #endregion 58 | 59 | internal static void Reset() 60 | { 61 | // nothing 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /Help/fti/FTI_101.json: -------------------------------------------------------------------------------- 1 | {"executiontype":[196615,4390919,6815745,9109505,16580609,16908289],"exposes":[524289,589825,851969,917505,1245185,1310721,1441793,2162689,2228225,2621441,3211265,3342337,3866625,3997697,4063233,4194305,4587521,4849665,4980737,5177345,6225921,6291457,6553601,6815745,7012353,7077889,8060929,8323073,8781825,8847361,9109505,9240577,9568257,9633793,9895937,10027009,10158081,10289153,10485761,10616833,11337729,11534337,11665409,12320769,12582913,12713985,13172737,13434881,13500417,13565953,13697025,13828097,13959169,14024705,14483457,14548993,14680065,14745601,14811137,15138817,15597569,16121857,16515073,16580609,16646145,16908289,17039361,17367041,17432577,18087937,18153473,18284545,18743297,19005441,19070977,19202049,19529729,19595265,19922945,20250625,20381697,20447233,20512769,20905985,21299201,21364737,21692417,21889025,21954561,22151169],"enabled":[655367,4587521,18284545],"exception":[917531,3670024,6619144,8454151,9633796,10289159,12386305,14811137,19529729,19922959,22085633],"equals":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"equal":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"exceptions":[917506,1048578,2293762,3670018,4784130,6291457,6619143,8454147,9633793,10289154,13303809,15073282,17104898,19922945,22085633],"error":[917505,19922945],"events":[917505,9633794],"existsonserver":[1245185,1966087,20512769],"enableareapath":[1310721,13828097,16384007,18153473,19202049,21757959],"executesavedquery":[4325383,12320769,22151169],"enablefortfsteams":[4915207,6684679,7733255],"execute":[5242887,12320769,22151169],"enums":[5308417,5505026,17235970,18350082],"enumerations":[5308417],"enumeration":[5308417,17235971,18350083],"ereportingactions":[5308417,5505037,18350087],"esharepointactions":[5308417,5505037,17235975],"excludewss":[6619143,15532039],"externalid":[6815745,9109505,15859719],"expectedteamname":[7405575,20054023],"enableiterationpath":[9895937,10158081,13828097,18153473,19726343,20709383],"expectedresults":[16580609,16908289,18874375],"enum":[17235972,18350084]} -------------------------------------------------------------------------------- /TfsApi/TestManagement/Exceptions/TestCaseConflictException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TfsApi.TestManagement.DTO; 7 | 8 | namespace TfsApi.TestManagement.Exceptions 9 | { 10 | public class TestCaseConflictException : Exception 11 | { 12 | public Microsoft.TeamFoundation.TestManagement.Client.ITestCase TfsTestCase 13 | { 14 | get 15 | { 16 | return Conflict.TfsTestCase; 17 | } 18 | } 19 | 20 | public TfsApi.TestManagement.Contracts.ITestCase TestCase 21 | { 22 | get 23 | { 24 | return Conflict.TestCase; 25 | } 26 | } 27 | 28 | public TestCaseConflict Conflict; 29 | 30 | public TestCaseConflictException(string message, 31 | Microsoft.TeamFoundation.TestManagement.Client.ITestCase tfsTestCase, 32 | TfsApi.TestManagement.Contracts.ITestCase testCase) 33 | : base(message) 34 | { 35 | Conflict = new TestCaseConflict(); 36 | Conflict.Message = message; 37 | Conflict.TestCase = testCase; 38 | Conflict.TfsTestCase = tfsTestCase; 39 | } 40 | 41 | public TestCaseConflictException(TestCaseConflict conflict) 42 | : base(conflict.Message) 43 | { 44 | Conflict = conflict; 45 | } 46 | 47 | public TestCaseConflictException(string message, 48 | Microsoft.TeamFoundation.TestManagement.Client.ITestCase tfsTestCase, 49 | TfsApi.TestManagement.Contracts.ITestCase testCase, 50 | Exception innerException) 51 | : base(message, innerException) 52 | { 53 | Conflict = new TestCaseConflict(); 54 | Conflict.Message = message; 55 | Conflict.TestCase = testCase; 56 | Conflict.TfsTestCase = tfsTestCase; 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Help/fti/FTI_114.json: -------------------------------------------------------------------------------- 1 | {"requesturi":[7,3407879,11730951,14942215],"return":[1,262145,983041,2097153,2424833,2686977,2752513,3407873,3932161,4325377,4456449,4521985,4718593,5242881,5636097,5701633,5767169,5832705,6422529,6619137,6946817,7143425,7340033,7405569,7471105,7995393,8126465,8912897,9043969,9175041,9306113,9699329,9764865,9961473,10551297,10682369,11730945,11796481,12451841,12648449,12976129,13238273,13762561,14090241,14876673,15269889,15335425,15400961,15532033,15663105,16449537,18415617,18481153,19267585,19857409,20971521,21430273,21823489],"readonly":[458754,1048578,1376258,1572866,1638402,1769474,1966082,4653058,8388610,10878978,12255234,12845058,13041666,15925250,17104898,17301506,18677762,20578306],"rank":[589825,8257543,18087937],"releasing":[786433,1310721,3211265,9895937,10027009,10158081,13172737,14024705,14811137,19202049,19529729],"resetting":[786433,1310721,3211265,9895937,10027009,10158081,13172737,14024705,14811137,19202049,19529729],"resources":[786434,917505,1310721,3211265,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,9895938,10027009,10158081,10289153,10616833,11665409,12124161,12713985,13172737,13500417,13697025,14024705,14483457,14548993,14811137,17432577,18087937,19005441,19202049,19529729,20250625,20381697],"releases":[786433,9895937,12124161],"reclaimed":[917505,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289153,10616833,11665409,12713985,13500417,13697025,14483457,14548993,17432577,18087937,19005441,20250625,20381697],"returns":[917506,3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10289154,10616833,11665409,12713985,13500417,13697025,14483457,14548994,17432577,18087937,19005441,20250625,20381698],"root":[917505,10289153],"runtime":[917505,10289153],"representation":[917506,10289153,19922945],"ref":[1835010,1900546,2490370,3473410,3801090,5963778,6094850,7274498,8454146,9437186,10223618,10813442,11075586,15007746,15990786,17694722,17825794,18415618,18612226,19136514,19660802,20119554,21168130,21495810],"represents":[3997697,4194305,4587521,4849665,6553601,7077889,8847361,9568257,10616833,11665409,12713985,13500417,13697025,14483457,17432577,18087937,19005441,20250625],"reportingaction":[5505031],"reportserverhash":[5505031],"reportfolderpath":[5505031],"removefromlist":[8060929,12910599,20512769]} -------------------------------------------------------------------------------- /Help/LoadIndexKeywords.php: -------------------------------------------------------------------------------- 1 | load("WebKI.xml"); 6 | $xpath = new DOMXPath($ki); 7 | $nodes = $xpath->query("/HelpKI/*"); 8 | $startIndexParam = $_GET["StartIndex"]; 9 | $startIndex = 0; 10 | if (!empty($startIndexParam)) 11 | $startIndex = intval($startIndexParam) * 128; 12 | $endIndex = $startIndex + 128; 13 | 14 | if ($endIndex > $nodes->length) 15 | $endIndex = $nodes->length; 16 | 17 | if($startIndex > 0) 18 | { 19 | ?> 20 |
21 |  << Previous page 22 |
23 | item($startIndex); 29 | $url = $node->getAttribute("Url"); 30 | $title = $node->getAttribute("Title"); 31 | $target = " target=\"TopicContent\""; 32 | 33 | if (empty($url)) 34 | { 35 | $url = "#"; 36 | $target = ""; 37 | } 38 | ?> 39 |
40 |  > 41 | query("./HelpKINode", $node); 43 | foreach($subNodes as $subNode) 44 | { 45 | $subUrl = $subNode->getAttribute("Url"); 46 | $subTitle = $subNode->getAttribute("Title"); 47 | ?> 48 |
49 | 50 |
51 | 52 | 55 |
56 | length) 61 | { 62 | ?> 63 |
64 |  Next page >> 65 |
66 | -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/ITfsTeam.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.TeamFoundation.Client; 2 | using Microsoft.TeamFoundation.ProcessConfiguration.Client; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using TfsApi.Administration.Dto; 8 | 9 | namespace TfsApi.Administration.Contracts 10 | { 11 | public interface ITfsTeam 12 | { 13 | // Summary: 14 | // Indicates whether the team is the "default team" for the team project 15 | // 16 | // Returns: 17 | // Returns System.Boolean. 18 | bool IsDefaultTeam { get; } 19 | 20 | // 21 | // Summary: 22 | // The Project Uri of the team project which the team belongs to 23 | // 24 | // Returns: 25 | // Returns System.String. 26 | string ProjectUri { get; } 27 | 28 | // 29 | // Summary: 30 | // The identifier for the team 31 | // 32 | // Returns: 33 | // Returns System.Guid. 34 | Guid TeamId { get; } 35 | 36 | // 37 | // Summary: 38 | // The team name 39 | // 40 | // Returns: 41 | // Returns System.String. 42 | string TeamName { get; } 43 | 44 | ProjectDetail ProjectDetails { get; } 45 | 46 | 47 | // 48 | // Summary: 49 | // The team settings 50 | // 51 | // Returns: 52 | // Returns Microsoft.TeamFoundation.ProcessConfiguration.Client.TeamSettings. 53 | TeamSettings TeamSettings { get; } 54 | 55 | TeamFoundationTeam TeamFoundationTeam { get; } 56 | 57 | TeamConfiguration TeamConfiguration { get; } 58 | 59 | TfsTeamService TeamService { get; } 60 | 61 | void EnableIterationPath(string iterationPath); 62 | 63 | void DisableIterationPath(string iterationPath); 64 | 65 | bool IsIterationPathEnabled(string iterationPath); 66 | 67 | List IterationPaths { get; } 68 | 69 | List AreaPaths { get; } 70 | 71 | void EnableAreaPath(string areaPath, bool includeChildren); 72 | 73 | void SwitchTeamEnabledAreaPaths(Dictionary areaPathsWithIncludeChildren, bool tryAddDefaultIterationPathIfRequired = false); 74 | 75 | void DisableAreaPath(string areaPath); 76 | 77 | bool IsAreaPathEnabled(string areaName); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /TfsApi/Utilities/HtmlRemovalUtility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.RegularExpressions; 3 | using System.Web; 4 | 5 | /// 6 | /// Methods to remove HTML from strings. 7 | /// 8 | internal static class HtmlRemovalUtility 9 | { 10 | /// 11 | /// Remove HTML from string with Regex. 12 | /// 13 | public static string StripTagsRegex(string source) 14 | { 15 | return Regex.Replace(source, "<.*?>", string.Empty); 16 | } 17 | 18 | /// 19 | /// Compiled regular expression for performance. 20 | /// 21 | static Regex _htmlRegex = new Regex("<.*?>", RegexOptions.Compiled); 22 | 23 | /// 24 | /// Remove HTML from string with compiled Regex. 25 | /// 26 | public static string StripTagsRegexCompiled(string source) 27 | { 28 | return _htmlRegex.Replace(source, string.Empty); 29 | } 30 | 31 | /// 32 | /// Remove HTML tags from string using char array. 33 | /// 34 | public static string StripTagsCharArray(string source, bool replaceNewLineWithEmpty = true) 35 | { 36 | char[] array = new char[source.Length]; 37 | int arrayIndex = 0; 38 | bool inside = false; 39 | 40 | for (int i = 0; i < source.Length; i++) 41 | { 42 | char let = source[i]; 43 | if (let == '<') 44 | { 45 | inside = true; 46 | continue; 47 | } 48 | if (let == '>') 49 | { 50 | inside = false; 51 | continue; 52 | } 53 | if (!inside) 54 | { 55 | array[arrayIndex] = let; 56 | arrayIndex++; 57 | } 58 | } 59 | return new string(array, 0, arrayIndex).Replace("\n",string.Empty); 60 | } 61 | 62 | /// 63 | /// Remove HTML tags from string using char array with special parsing at the end. 64 | /// 65 | public static string StripTagsCharArrayWithExtraParsing(string source) 66 | { 67 | string newSource = string.Empty; 68 | foreach (char ch in HttpUtility.HtmlDecode(StripTagsCharArray(source))) 69 | { 70 | if (char.IsLetter(ch) || char.IsDigit(ch)) 71 | { 72 | newSource += ch; 73 | } 74 | } 75 | return newSource; 76 | } 77 | } -------------------------------------------------------------------------------- /TfsApi/Defaults.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the Defaults.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Collections.Concurrent; 14 | 15 | using TfsApi.Contracts; 16 | 17 | #endregion 18 | 19 | public sealed class Defaults 20 | { 21 | #region Static Fields 22 | 23 | private static readonly object SyncRoot = new object(); 24 | 25 | private static readonly ConcurrentDictionary _tfsCredentials = new ConcurrentDictionary(); 26 | 27 | private static volatile Defaults instance; 28 | 29 | #endregion 30 | 31 | #region Constructors and Destructors 32 | 33 | private Defaults() 34 | { 35 | } 36 | 37 | #endregion 38 | 39 | #region Public Properties 40 | 41 | public static Defaults Instance 42 | { 43 | get 44 | { 45 | if (instance == null) 46 | { 47 | lock (SyncRoot) 48 | { 49 | if (instance == null) 50 | { 51 | instance = new Defaults(); 52 | } 53 | } 54 | } 55 | 56 | return instance; 57 | } 58 | } 59 | 60 | #endregion 61 | 62 | #region Public Methods and Operators 63 | 64 | public static ITfsCredentials GetDefaultCredentials(Uri tfsUri) 65 | { 66 | ITfsCredentials result = null; 67 | if (_tfsCredentials.ContainsKey(tfsUri)) 68 | { 69 | result = _tfsCredentials[tfsUri]; 70 | } 71 | 72 | return result; 73 | } 74 | 75 | public static void SetDefaultCredentials(Uri tfsUri, ITfsCredentials tfsCredentials) 76 | { 77 | _tfsCredentials.AddOrUpdate(tfsUri, tfsCredentials, (key, oldValue) => tfsCredentials); 78 | } 79 | 80 | public static void GetDefaultVisualStudioEnvironment(Uri tfsUri, ITfsCredentials tfsCredentials) 81 | { 82 | _tfsCredentials.AddOrUpdate(tfsUri, tfsCredentials, (key, oldValue) => tfsCredentials); 83 | } 84 | 85 | #endregion 86 | } 87 | } -------------------------------------------------------------------------------- /TfsApi/Utilities/StreamUtility.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Utilities 2 | { 3 | #region 4 | 5 | using System; 6 | using System.IO; 7 | 8 | #endregion 9 | 10 | internal static class StreamUtility 11 | { 12 | #region Public Methods and Operators 13 | 14 | public static byte[] ConvertStreamToByteArray(Stream input) 15 | { 16 | var buffer = new byte[16 * 1024]; 17 | using (var ms = new MemoryStream()) 18 | { 19 | int read; 20 | while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 21 | { 22 | ms.Write(buffer, 0, read); 23 | } 24 | 25 | return ms.ToArray(); 26 | } 27 | } 28 | 29 | public static byte[] ReadByteArrayFromFilename(string filename) 30 | { 31 | byte[] result = null; 32 | 33 | FileStream fileStream = null; 34 | try 35 | { 36 | fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 37 | result = ConvertStreamToByteArray(fileStream); 38 | } 39 | catch (Exception ex) 40 | { 41 | throw new Exception("Writing to the path '" + filename + "' failed.", ex); 42 | } 43 | finally 44 | { 45 | if (fileStream != null) 46 | { 47 | fileStream.Close(); 48 | fileStream.Dispose(); 49 | } 50 | } 51 | 52 | return result; 53 | } 54 | 55 | public static void WriteToFileSystem(string filename, byte[] input) 56 | { 57 | FileStream fs = null; 58 | BinaryWriter bw = null; 59 | try 60 | { 61 | fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); 62 | bw = new BinaryWriter(fs); 63 | using (var ms = new MemoryStream(input)) 64 | { 65 | bw.Write(ms.ToArray()); 66 | } 67 | } 68 | catch (Exception ex) 69 | { 70 | throw new Exception("Writing to the path '" + filename + "' failed.", ex); 71 | } 72 | finally 73 | { 74 | if (bw != null) 75 | { 76 | bw.Close(); 77 | bw.Dispose(); 78 | } 79 | 80 | if (fs != null) 81 | { 82 | fs.Close(); 83 | fs.Dispose(); 84 | } 85 | } 86 | } 87 | 88 | public static void WriteToFileSystem(string filename, Stream input) 89 | { 90 | WriteToFileSystem(filename, ConvertStreamToByteArray(input)); 91 | } 92 | 93 | #endregion 94 | } 95 | } -------------------------------------------------------------------------------- /Help/TOC.css: -------------------------------------------------------------------------------- 1 | /* File : TOC.css 2 | // Author : Eric Woodruff (Eric@EWoodruff.us) 3 | // Updated : 09/07/2007 4 | // 5 | // Stylesheet for the table of content 6 | */ 7 | 8 | * 9 | { 10 | margin: 0px 0px 0px 0px; 11 | padding: 0px 0px 0px 0px; 12 | } 13 | 14 | body 15 | { 16 | font-family: verdana, arial, sans-serif; 17 | font-size: 8.5pt; 18 | background-color: #6699CC; 19 | color: White; 20 | overflow: hidden; 21 | } 22 | 23 | input 24 | { 25 | font-size: 8.5pt; 26 | } 27 | 28 | img 29 | { 30 | border: 0; 31 | margin-left: 5px; 32 | margin-right: 2px; 33 | } 34 | 35 | img.TreeNodeImg 36 | { 37 | cursor: pointer; 38 | } 39 | 40 | img.TOCLink 41 | { 42 | cursor: pointer; 43 | margin-left: 0; 44 | margin-right: 0; 45 | } 46 | 47 | a.SelectedNode, a.UnselectedNode 48 | { 49 | color: black; 50 | text-decoration: none; 51 | padding: 1px 3px 1px 3px; 52 | white-space: nowrap; 53 | } 54 | 55 | a.SelectedNode 56 | { 57 | background-color: #ffffff; 58 | border: solid 1px #999999; 59 | padding: 0px 2px 0px 2px; 60 | } 61 | 62 | a.UnselectedNode:hover, a.SelectedNode:hover 63 | { 64 | background-color: #cccccc; 65 | border: solid 1px #999999; 66 | padding: 0px 2px 0px 2px; 67 | } 68 | 69 | .Visible 70 | { 71 | display: block; 72 | margin-left: 2em; 73 | } 74 | 75 | .Hidden 76 | { 77 | display: none; 78 | } 79 | 80 | .Tree 81 | { 82 | background-color: #f0f0f0; 83 | color: Black; 84 | width: 300px; 85 | overflow: auto; 86 | } 87 | 88 | .TreeNode, .TreeItem 89 | { 90 | white-space: nowrap; 91 | margin: 2px 2px 2px 2px; 92 | } 93 | 94 | .TOCDiv 95 | { 96 | position: relative; 97 | float: left; 98 | width: 300px; 99 | height: 100%; 100 | } 101 | 102 | .TOCSizer 103 | { 104 | clear: none; 105 | float: left; 106 | width: 10px; 107 | height: 100%; 108 | background-color: #6699CC; 109 | background-image: url("Splitter.gif"); 110 | background-position:center center; 111 | background-repeat:no-repeat; 112 | position: relative; 113 | cursor: w-resize; 114 | } 115 | 116 | .TopicContent 117 | { 118 | position: relative; 119 | float: right; 120 | background-color: white; 121 | height: 100%; 122 | } 123 | 124 | .SearchOpts 125 | { 126 | padding: 5px 5px 0px 5px; 127 | background-color: lightgrey; 128 | color: black; 129 | width: 300px; 130 | } 131 | 132 | .NavOpts 133 | { 134 | padding: 5px 5px 0px 5px; 135 | background-color: lightgrey; 136 | color: black; 137 | width: 300px; 138 | } 139 | 140 | .IndexOpts 141 | { 142 | padding: 5px 5px 0px 5px; 143 | background-color: lightgrey; 144 | color: black; 145 | width: 300px; 146 | } 147 | 148 | .IndexItem 149 | { 150 | white-space: nowrap; 151 | margin: 2px 2px 2px 2px; 152 | } 153 | 154 | .IndexSubItem 155 | { 156 | white-space: nowrap; 157 | margin: 2px 2px 2px 12px; 158 | } 159 | 160 | .PaddedText 161 | { 162 | margin: 10px 10px 10px 10px; 163 | } 164 | -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/ITeamProjectCollections.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the ITeamProjectCollections.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Contracts 9 | { 10 | #region 11 | 12 | using Microsoft.TeamFoundation.Client; 13 | using Microsoft.TeamFoundation.Framework.Client; 14 | using Microsoft.TeamFoundation.Server; 15 | using System; 16 | using System.Collections.Generic; 17 | using TfsApi.Administration.Dto; 18 | using TfsApi.Administration.Enums; 19 | using TfsApi.Contracts; 20 | 21 | #endregion 22 | 23 | public interface ITeamProjectCollections : IDisposable 24 | { 25 | #region Public Properties 26 | 27 | /// 28 | /// Gets the TFS URI being used in this instance. 29 | /// 30 | /// 31 | /// The TFS URI. 32 | /// 33 | Uri TfsUri { get; } 34 | 35 | IRegistration Registration { get; } 36 | 37 | ITeamProjectCollectionService TeamProjectCollectionService { get; } 38 | 39 | TfsConfigurationServer TfsConfigurationServer { get; } 40 | 41 | ITfsCredentials TfsCredentials { get; } 42 | 43 | TfsTeamProjectCollection TfsTeamProjectCollection { get; } 44 | 45 | #endregion 46 | 47 | #region Public Methods and Operators 48 | 49 | /// 50 | /// Checks if the collection name exists. 51 | /// 52 | /// Name of the collection. 53 | /// 54 | bool CollectionExists(string collectionName); 55 | 56 | /// 57 | /// Creates the project collection. 58 | /// 59 | /// The name. 60 | /// The description. 61 | /// The share point action. 62 | /// The share point server hash. 63 | /// The share point site path. 64 | /// The reporting action. 65 | /// The report server hash. 66 | /// The report folder path. 67 | void CreateProjectCollection(string name, string description, eSharePointActions sharePointAction = eSharePointActions.None, string sharePointServerHash = null, string sharePointSitePath = null, eReportingActions reportingAction = eReportingActions.None, string reportServerHash = null, string reportFolderPath = null); 68 | 69 | void DeleteProjectCollection(string teamProjectCollection); 70 | 71 | /// 72 | /// Gets all collections. 73 | /// 74 | /// 75 | List ListCollections(); 76 | 77 | #endregion 78 | } 79 | } -------------------------------------------------------------------------------- /TfsApi/Queries/Workers/QueryRunner.cs: -------------------------------------------------------------------------------- 1 | using TfsApi.Queries.Contracts; 2 | using TfsApi.WorkItemTracking; 3 | using Microsoft.TeamFoundation.Client; 4 | using Microsoft.TeamFoundation.WorkItemTracking.Client; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | 10 | namespace TfsApi.Queries 11 | { 12 | internal class QueryRunner : IQueryRunner 13 | { 14 | private readonly Uri requestUri; 15 | private readonly TfsApi.Contracts.ITfsCredentials tfsCredentials; 16 | readonly string _projectName; 17 | 18 | public QueryRunner(Uri requestUri, string projectName, TfsApi.Contracts.ITfsCredentials tfsCredentials) 19 | { 20 | // TODO: Complete member initialization 21 | this.requestUri = requestUri; 22 | _projectName = projectName; 23 | this.tfsCredentials = tfsCredentials; 24 | } 25 | 26 | public WorkItemCollection Execute(string query) 27 | { 28 | WorkItemStore store = WorkItemStoreFactory.GetWorkItemStore(requestUri, tfsCredentials); 29 | query = query.Replace("@project", "'" + _projectName + "'"); 30 | return store.Query(query); 31 | } 32 | 33 | public WorkItemCollection ExecuteSavedQuery(string queryFullname) 34 | { 35 | var workItemStore = WorkItemStoreFactory.GetWorkItemStore(requestUri, tfsCredentials); 36 | var queryHirerarchy = workItemStore.Projects[_projectName].QueryHierarchy; 37 | string query = GetQueryText(queryHirerarchy, queryFullname); 38 | if (string.IsNullOrEmpty(query)) 39 | { 40 | throw new Exception("Couldn't find a wiql query for '" + queryFullname + "'."); 41 | } 42 | return Execute(query); 43 | } 44 | 45 | private string GetQueryText(QueryFolder queryFolder, string queryFullname) 46 | { 47 | string result = null; 48 | string thisLevelName = queryFullname.TrimStart('/'); 49 | string queryPathLeft = string.Empty; 50 | if (thisLevelName.Contains("/")) 51 | { 52 | thisLevelName = thisLevelName.Remove(thisLevelName.IndexOf("/")); 53 | queryPathLeft = queryFullname.TrimStart('/'); 54 | queryPathLeft = queryPathLeft.Remove(0, thisLevelName.Length); 55 | } 56 | if (queryFolder.Name == thisLevelName) 57 | { 58 | foreach (QueryItem query in queryFolder) 59 | { 60 | if (query is QueryFolder) 61 | { 62 | result = GetQueryText(query as QueryFolder, queryPathLeft); 63 | } 64 | else if (query is QueryDefinition) 65 | { 66 | if (query.Name == queryPathLeft.TrimStart('/')) 67 | { 68 | result = (query as QueryDefinition).QueryText; 69 | } 70 | } 71 | if (result != null) 72 | { 73 | break; 74 | } 75 | } 76 | } 77 | return result; 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/IIterationManager.cs: -------------------------------------------------------------------------------- 1 | namespace TfsApi.Administration.Contracts 2 | { 3 | #region 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | 8 | using TfsApi.Administration.Dto; 9 | 10 | #endregion 11 | 12 | public interface IIterationManager : IDisposable 13 | { 14 | #region Public Methods and Operators 15 | 16 | /// 17 | /// Adds the new iteration. 18 | /// 19 | /// New name of the iteration. 20 | /// The start date. 21 | /// The finish date. 22 | /// Enable this new iteration path for all the supplied teams. 23 | void AddNewIteration(string newIterationName, DateTime? startDate = null, DateTime? finishDate = null, List enableforTfsTeams = null, bool refreshCache = false); 24 | 25 | /// 26 | /// Checks if path already exists. 27 | /// 28 | /// The iteration path. 29 | /// 30 | bool CheckIfPathAlreadyExists(string iterationPath); 31 | 32 | /// 33 | /// Deletes the iteration. 34 | /// 35 | /// The project iteration. 36 | void DeleteIteration(ProjectIteration projectIteration); 37 | 38 | /// 39 | /// Deletes the iteration using iteration path. 40 | /// 41 | /// The iteration path. 42 | void DeleteIterationUsingIterationPath(string iterationPath); 43 | 44 | /// 45 | /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 46 | /// 47 | void Dispose(); 48 | 49 | /// 50 | /// Flattens the iterations. 51 | /// 52 | /// The list. 53 | /// 54 | List FlattenIterations(List list); 55 | 56 | /// 57 | /// Determines whether [is iteration path visible for iteration planning] [the specified iteration path]. 58 | /// 59 | /// The TFS Team. 60 | /// The iteration path. 61 | /// 62 | /// true if [is iteration path visible for iteration planning] [the specified iteration path]; otherwise, false. 63 | /// 64 | bool IsIterationPathEnabled(ITfsTeam tfsTeam, string iterationPath); 65 | 66 | /// 67 | /// Lists the Iterations. 68 | /// 69 | /// 70 | List ListIterations(); 71 | 72 | ProjectIteration FindProjectIteration(string fullIterationPath); 73 | 74 | void EnableIterationPath(ITfsTeam tfsTeam, string iterationName, bool includeChildren); 75 | 76 | void DisableIterationPath(ITfsTeam tfsTeam, string iterationName); 77 | 78 | #endregion 79 | } 80 | } -------------------------------------------------------------------------------- /TfsApi/Administration/Contracts/IProcessTemplates.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the IProcessTemplates.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Contracts 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Collections.Generic; 14 | using System.IO; 15 | 16 | using TfsApi.Administration.Dto; 17 | 18 | #endregion 19 | 20 | public interface IProcessTemplates : IDisposable 21 | { 22 | #region Public Methods and Operators 23 | 24 | /// 25 | /// Deletes the template. 26 | /// 27 | /// The name. 28 | void DeleteTemplate(string name); 29 | 30 | /// 31 | /// Downloads the template and returns a byte[]. 32 | /// 33 | /// The name. 34 | /// 35 | byte[] DownloadTemplateAndReturnByteArray(string name); 36 | 37 | /// 38 | /// Downloads the template and returns a path to the zip file. 39 | /// 40 | /// The name. 41 | /// 42 | string DownloadTemplateAndReturnPathToZip(string name); 43 | 44 | /// 45 | /// Lists the process templates. 46 | /// 47 | /// 48 | List ListProcessTemplates(); 49 | 50 | /// 51 | /// Sets the default template. 52 | /// 53 | /// The name. 54 | void MakeDefaultTemplate(string name); 55 | 56 | /// 57 | /// Uploads the template. 58 | /// 59 | /// The name. 60 | /// The description. 61 | /// Name of the zip file. 62 | /// The meta data. 63 | void UploadTemplate(string name, string description, string zipFileName, string metaData = null); 64 | 65 | /// 66 | /// Uploads the template. 67 | /// 68 | /// The name. 69 | /// The description. 70 | /// The zip file stream. 71 | /// The meta data. 72 | void UploadTemplate(string name, string description, Stream zipFileStream, string metaData = null); 73 | 74 | /// 75 | /// Uploads the template. 76 | /// 77 | /// The name. 78 | /// The description. 79 | /// The zip file byte array. 80 | /// The meta data. 81 | void UploadTemplate(string name, string description, byte[] zipFileByteArray, string metaData = null); 82 | 83 | #endregion 84 | } 85 | } -------------------------------------------------------------------------------- /TfsApi.Tests/Assembly_Initialize_CleanUp.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the Assembly_Initialize_CleanUp.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Tests 9 | { 10 | #region 11 | 12 | using System.Diagnostics.CodeAnalysis; 13 | 14 | using Microsoft.VisualStudio.TestTools.UnitTesting; 15 | 16 | using TfsApi.Administration.Contracts; 17 | using System; 18 | 19 | #endregion 20 | 21 | [TestClass] 22 | [ExcludeFromCodeCoverage] 23 | public sealed class Assembly_Initialize_CleanUp 24 | { 25 | #region Public Methods and Operators 26 | 27 | [AssemblyCleanup] 28 | public static void AssemblyCleanup() 29 | { 30 | //ITeamProjects teamProjectCollections = TeamProjectFactory.CreateTeamProjectMananger(TestConstants.TfsCollectionUri, TestConstants.DefaultCredentials); 31 | 32 | //foreach (string projectName in teamProjectCollections.ListTeamProjectNames()) 33 | //{ 34 | // teamProjectCollections.DeleteTeamProject(projectName, true, false); 35 | //} 36 | 37 | ITeamManager teamManager = TeamManagerFactory.GetManager(TestConstants.TfsTeamProjectDetail); 38 | foreach (var team in teamManager.ListTeams()) 39 | { 40 | if (team.TeamName != TestConstants.TfsTeamProjectName + " Team") 41 | { 42 | teamManager.DeleteTeam(team.TeamName); 43 | } 44 | } 45 | } 46 | 47 | [AssemblyInitialize] 48 | public static void AssemblyInit(TestContext context) 49 | { 50 | using (ITeamProjectCollections teamProjectCollections = TeamProjectCollectionFactory.CreateTeamProjectCollectionMananger(TestConstants.TfsUri, TestConstants.DefaultCredentials)) 51 | { 52 | if (!teamProjectCollections.CollectionExists(TestConstants.TfsCollectionName)) 53 | { 54 | teamProjectCollections.CreateProjectCollection(TestConstants.TfsCollectionName, TestConstants.TfsCollectionDescription); 55 | } 56 | } 57 | 58 | using (ITeamProjects teamProjectCollections = TeamProjectFactory.CreateTeamProjectMananger(TestConstants.TfsCollectionUri, TestConstants.DefaultCredentials)) 59 | { 60 | if (!teamProjectCollections.TeamProjectExists(TestConstants.TfsTeamProjectName)) 61 | { 62 | string processName = string.Empty; 63 | IProcessTemplates processTemplates = ProcessTemplateFactory.CreateProcessTemplateMananger(TestConstants.TfsCollectionUri); 64 | processName = processTemplates.ListProcessTemplates()[0].Name; 65 | if (!teamProjectCollections.CreateTeamProject(TestConstants.TfsTeamProjectName, TestConstants.TfsTeamProjectDescription, processName, false, false)) 66 | { 67 | throw new Exception("Failed to create the default project for TFS API Tests."); 68 | } 69 | } 70 | } 71 | } 72 | 73 | #endregion 74 | } 75 | } -------------------------------------------------------------------------------- /Help/html/8486e7b6-b136-0af7-7c6a-a85acaef7386.htm: -------------------------------------------------------------------------------- 1 | TfsApi Namespace
TfsApi NamespaceTfs Api
 
Classes

9 |   10 | ClassDescription
Public classDefaults
-------------------------------------------------------------------------------- /Help/fti/FTI_110.json: -------------------------------------------------------------------------------- 1 | {"namespace":[2,65538,131074,196610,262146,327682,393218,458754,524289,589825,655362,720898,786433,851969,917505,983042,1048578,1114114,1179650,1245185,1310721,1376258,1441793,1507330,1572866,1638402,1703937,1769474,1835010,1900546,1966082,2031617,2097154,2162689,2228225,2293762,2359297,2424834,2490370,2555906,2621441,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211265,3276802,3342337,3407874,3473410,3538946,3604481,3670018,3735554,3801090,3866625,3932162,3997697,4063233,4128770,4194305,4259842,4325378,4390914,4456450,4521986,4587521,4653058,4718594,4784130,4849665,4915202,4980737,5046274,5111810,5177345,5242882,5308417,5373954,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898242,5963778,6029314,6094850,6160386,6225921,6291457,6356994,6422530,6488066,6553601,6619138,6684674,6750210,6815745,6881281,6946818,7012353,7077889,7143426,7208961,7274498,7340034,7405570,7471106,7536642,7602178,7667714,7733250,7798786,7864322,7929858,7995394,8060929,8126466,8192001,8257538,8323073,8388610,8454146,8519682,8585218,8650754,8716290,8781825,8847361,8912898,8978434,9043970,9109505,9175042,9240577,9306114,9371650,9437186,9502722,9568257,9633793,9699330,9764866,9830402,9895937,9961474,10027009,10092545,10158081,10223618,10289153,10354689,10420226,10485761,10551298,10616833,10682370,10747906,10813442,10878978,10944513,11010050,11075586,11141122,11206657,11272194,11337729,11403266,11468802,11534337,11599873,11665409,11730946,11796482,11862018,11927554,11993090,12058626,12124162,12189698,12255234,12320769,12386305,12451842,12517378,12582913,12648450,12713985,12779521,12845058,12910594,12976130,13041666,13107202,13172737,13238274,13303809,13369346,13434881,13500417,13565953,13631490,13697025,13762562,13828097,13893634,13959169,14024705,14090242,14155778,14221314,14286850,14352386,14417922,14483457,14548993,14614530,14680065,14745601,14811137,14876674,14942210,15007746,15073282,15138817,15204354,15269890,15335426,15400962,15466497,15532034,15597569,15663106,15728642,15794177,15859714,15925250,15990786,16056322,16121857,16187394,16252930,16318465,16384002,16449538,16515073,16580609,16646145,16711681,16777218,16842754,16908289,16973826,17039361,17104898,17170434,17235970,17301506,17367041,17432577,17498114,17563649,17629186,17694722,17760258,17825794,17891330,17956866,18022401,18087937,18153473,18219010,18284545,18350082,18415618,18481154,18546690,18612226,18677762,18743297,18808834,18874370,18939906,19005441,19070977,19136514,19202049,19267586,19333122,19398658,19464194,19529729,19595265,19660802,19726338,19791874,19857410,19922945,19988482,20054018,20119554,20185090,20250625,20316162,20381697,20447233,20512769,20578306,20643842,20709378,20774914,20840450,20905985,20971522,21037058,21102594,21168130,21233666,21299201,21364737,21430274,21495810,21561346,21626882,21692417,21757954,21823490,21889025,21954561,22020097,22085633,22151169],"null":[2,983044,2555906,2686978,3407874,4456450,5505032,6422530,6488066,6684674,6946818,7340034,7471106,7733254,10551298,10682370,11730946,14942210,15204354],"nullptr":[2,983044,2555906,2686978,3407874,4456450,5505032,6422530,6488066,6684674,6946818,7340034,7471106,7733254,10551298,10682370,11730946,14942210,15204354],"new":[917507,2293763,3145731,3670019,4587521,4784131,4849665,5046275,5898243,6553601,7864323,8847361,10616833,10747907,11206660,13697025,14417923,16973827,17432580,17891331,18087937,18808835,20643843,21233667,22085635],"numerical":[917505,19922945],"notinheritable":[1900546,2490370,3473410,3801090,5963778,6094850,7274498,10223618,10813442,11075586,15007746,15990786,17694722,17825794,18612226,20119554,21168130,21495810],"newareaname":[5701639],"nodecount":[6029319,6815745,9109505,10485761,16515073,19464199],"nullable":[6160395,7733262,8519691],"newiterationname":[7733255]} -------------------------------------------------------------------------------- /TfsApi/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Help/FillNode.aspx: -------------------------------------------------------------------------------- 1 | <%@ Page Language="C#" EnableViewState="False" %> 2 | 3 | 91 | -------------------------------------------------------------------------------- /DocFile.shfbproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | Debug 8 | AnyCPU 9 | 2.0 10 | {ed1f9871-9176-4c33-966c-e4ffe4dd6d04} 11 | 1.9.5.0 12 | 14 | Documentation 15 | Documentation 16 | Documentation 17 | 18 | .NET Framework 4.5 19 | .\Help\ 20 | TfsApi 21 | en-US 22 | OnlyWarningsAndErrors 23 | Website 24 | False 25 | False 26 | False 27 | False 28 | True 29 | Standard 30 | Self 31 | False 32 | VS2010 33 | False 34 | Guid 35 | Tfs Api 36 | AboveNamespaces 37 | AutoDocumentCtors, AutoDocumentDispose 38 | 39 | 40 | 41 | Documentation Feedback 42 | documentation%40beeming.co.za 43 | 1.2.0.0 44 | ms.vsipcc+, ms.vsexpresscc+ 45 | Hierarchical 46 | Msdn 47 | True 48 | 49 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | /TfsApi/bin/Debug 3 | /TfsApi.Tests/bin/Debug 4 | /TfsApi/obj/Debug 5 | /TfsApi.Tests/obj/Debug 6 | 7 | 8 | ################# 9 | ## Eclipse 10 | ################# 11 | 12 | *.pydevproject 13 | .project 14 | .metadata 15 | bin/ 16 | tmp/ 17 | *.tmp 18 | *.bak 19 | *.swp 20 | *~.nib 21 | local.properties 22 | .classpath 23 | .settings/ 24 | .loadpath 25 | 26 | # External tool builders 27 | .externalToolBuilders/ 28 | 29 | # Locally stored "Eclipse launch configurations" 30 | *.launch 31 | 32 | # CDT-specific 33 | .cproject 34 | 35 | # PDT-specific 36 | .buildpath 37 | 38 | 39 | ################# 40 | ## Visual Studio 41 | ################# 42 | 43 | ## Ignore Visual Studio temporary files, build results, and 44 | ## files generated by popular Visual Studio add-ons. 45 | 46 | # User-specific files 47 | *.suo 48 | *.user 49 | *.sln.docstates 50 | 51 | # Build results 52 | 53 | [Dd]ebug/ 54 | [Rr]elease/ 55 | x64/ 56 | build/ 57 | [Bb]in/ 58 | [Oo]bj/ 59 | 60 | # MSTest test Results 61 | [Tt]est[Rr]esult*/ 62 | [Bb]uild[Ll]og.* 63 | 64 | *_i.c 65 | *_p.c 66 | *.ilk 67 | *.meta 68 | *.obj 69 | *.pch 70 | *.pdb 71 | *.pgc 72 | *.pgd 73 | *.rsp 74 | *.sbr 75 | *.tlb 76 | *.tli 77 | *.tlh 78 | *.tmp 79 | *.tmp_proj 80 | *.log 81 | *.vspscc 82 | *.vssscc 83 | .builds 84 | *.pidb 85 | *.log 86 | *.scc 87 | 88 | # Visual C++ cache files 89 | ipch/ 90 | *.aps 91 | *.ncb 92 | *.opensdf 93 | *.sdf 94 | *.cachefile 95 | 96 | # Visual Studio profiler 97 | *.psess 98 | *.vsp 99 | *.vspx 100 | 101 | # Guidance Automation Toolkit 102 | *.gpState 103 | 104 | # ReSharper is a .NET coding add-in 105 | _ReSharper*/ 106 | *.[Rr]e[Ss]harper 107 | 108 | # TeamCity is a build add-in 109 | _TeamCity* 110 | 111 | # DotCover is a Code Coverage Tool 112 | *.dotCover 113 | 114 | # NCrunch 115 | *.ncrunch* 116 | .*crunch*.local.xml 117 | 118 | # Installshield output folder 119 | [Ee]xpress/ 120 | 121 | # DocProject is a documentation generator add-in 122 | DocProject/buildhelp/ 123 | DocProject/Help/*.HxT 124 | DocProject/Help/*.HxC 125 | DocProject/Help/*.hhc 126 | DocProject/Help/*.hhk 127 | DocProject/Help/*.hhp 128 | DocProject/Help/Html2 129 | DocProject/Help/html 130 | 131 | # Click-Once directory 132 | publish/ 133 | 134 | # Publish Web Output 135 | *.Publish.xml 136 | *.pubxml 137 | 138 | # NuGet Packages Directory 139 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 140 | #packages/ 141 | 142 | # Windows Azure Build Output 143 | csx 144 | *.build.csdef 145 | 146 | # Windows Store app package directory 147 | AppPackages/ 148 | 149 | # Others 150 | sql/ 151 | *.Cache 152 | ClientBin/ 153 | [Ss]tyle[Cc]op.* 154 | ~$* 155 | *~ 156 | *.dbmdl 157 | *.[Pp]ublish.xml 158 | *.pfx 159 | *.publishsettings 160 | 161 | # RIA/Silverlight projects 162 | Generated_Code/ 163 | 164 | # Backup & report files from converting an old project file to a newer 165 | # Visual Studio version. Backup files are not needed, because we have git ;-) 166 | _UpgradeReport_Files/ 167 | Backup*/ 168 | UpgradeLog*.XML 169 | UpgradeLog*.htm 170 | 171 | # SQL Server files 172 | App_Data/*.mdf 173 | App_Data/*.ldf 174 | 175 | ############# 176 | ## Windows detritus 177 | ############# 178 | 179 | # Windows image file caches 180 | Thumbs.db 181 | ehthumbs.db 182 | 183 | # Folder config file 184 | Desktop.ini 185 | 186 | # Recycle Bin used on file shares 187 | $RECYCLE.BIN/ 188 | 189 | # Mac crap 190 | .DS_Store 191 | 192 | 193 | ############# 194 | ## Python 195 | ############# 196 | 197 | *.py[co] 198 | 199 | # Packages 200 | *.egg 201 | *.egg-info 202 | dist/ 203 | build/ 204 | eggs/ 205 | parts/ 206 | var/ 207 | sdist/ 208 | develop-eggs/ 209 | .installed.cfg 210 | 211 | # Installer logs 212 | pip-log.txt 213 | 214 | # Unit test / coverage reports 215 | .coverage 216 | .tox 217 | 218 | #Translations 219 | *.mo 220 | 221 | #Mr Developer 222 | .mr.developer.cfg 223 | -------------------------------------------------------------------------------- /Help/html/48ac440e-2b2e-1519-a109-351a262ce738.htm: -------------------------------------------------------------------------------- 1 | TfsApi.Administration.Enums Namespace
TfsApi.Administration.Enums NamespaceTfs Api
 
Enumerations

9 |   10 | EnumerationDescription
Public enumerationeReportingActions
Public enumerationeSharePointActions
-------------------------------------------------------------------------------- /TfsApi.Tests/TestConstants.cs: -------------------------------------------------------------------------------- 1 | // // 2 | // // This source code is copyright Binary Digit. All rights reserved. 3 | // // 4 | // // 5 | // // Defines the TestConstants.cs type. 6 | // // 7 | // // -------------------------------------------------------------------------------------------------------------------- 8 | namespace TfsApi.Administration.Tests 9 | { 10 | #region 11 | 12 | using System; 13 | using System.Diagnostics.CodeAnalysis; 14 | using TfsApi.Administration.Contracts; 15 | using TfsApi.Administration.Dto; 16 | using TfsApi.Contracts; 17 | 18 | #endregion 19 | 20 | [ExcludeFromCodeCoverage] 21 | public static class TestConstants 22 | { 23 | #region Public Properties 24 | 25 | public static ITfsCredentials DefaultCredentials 26 | { 27 | get 28 | { 29 | return null; 30 | //return new BasicCredential("Administrator", "Passw0rd"); 31 | } 32 | } 33 | 34 | public static string ProcessTemplateDescription 35 | { 36 | get 37 | { 38 | return "Tfs API Process Template Description"; 39 | } 40 | } 41 | 42 | public static string ProcessTemplateName 43 | { 44 | get 45 | { 46 | return "Tfs API Process Template"; 47 | } 48 | } 49 | 50 | public static string TfsCollectionDescription 51 | { 52 | get 53 | { 54 | return @"This is the Tfs Api Collection created as part of the Unit Tests Assembly Initialization. 55 | 56 | More Info : http://tfsapi.codeplex.com."; 57 | } 58 | } 59 | 60 | public static string TfsCollectionName 61 | { 62 | get 63 | { 64 | return @"TfsAPI"; 65 | } 66 | } 67 | 68 | public static Uri TfsCollectionUri 69 | { 70 | get 71 | { 72 | return new Uri(TfsUri + "/" + TfsCollectionName); 73 | } 74 | } 75 | 76 | public static string TfsTeamProjectDescription 77 | { 78 | get 79 | { 80 | return @"This is the Tfs Api '" + TfsTeamProjectName + @"' Team Project created as part of the Unit Tests Assembly Initialization. 81 | 82 | More Info : http://tfsapi.codeplex.com."; 83 | } 84 | } 85 | 86 | public static string TfsTeamProjectName 87 | { 88 | get 89 | { 90 | return @"Team 0"; 91 | } 92 | } 93 | 94 | public static Uri TfsTeamProjectUri 95 | { 96 | get 97 | { 98 | return new Uri(TfsCollectionUri + "/" + TfsTeamProjectName); 99 | } 100 | } 101 | 102 | public static Uri TfsUri 103 | { 104 | get 105 | { 106 | return new Uri("http://TfsServer:8080/tfs"); 107 | } 108 | } 109 | 110 | public static ProjectDetail TfsTeamProjectDetail 111 | { 112 | get 113 | { 114 | return new ProjectDetail 115 | { 116 | CollectionUri = TfsCollectionUri, 117 | ProjectName = TfsTeamProjectName 118 | }; 119 | } 120 | } 121 | 122 | public static ITfsTeam TfsTeam 123 | { 124 | get 125 | { 126 | ITeamManager teamManager = TeamManagerFactory.GetManager(TfsTeamProjectDetail); 127 | var tfsTeamName = TfsTeamProjectDetail.ProjectName + " Team"; 128 | return teamManager.GetTfsTeam(tfsTeamName); 129 | } 130 | } 131 | 132 | #endregion 133 | } 134 | } -------------------------------------------------------------------------------- /Help/html/37e69fc2-970a-8785-cab2-fd77523bf8f4.htm: -------------------------------------------------------------------------------- 1 | Defaults Properties
Defaults PropertiesTfs Api
The Defaults type exposes the following members.
Properties

9 |   10 | NameDescription
Public propertyStatic memberInstance
Back to Top
See Also

-------------------------------------------------------------------------------- /TfsApi.Tests/TeamManagerTests.cs: -------------------------------------------------------------------------------- 1 | using TfsApi.Administration.Contracts; 2 | namespace TfsApi.Tests 3 | { 4 | #region 5 | 6 | using System; 7 | using System.Collections.Generic; 8 | using System.Diagnostics.CodeAnalysis; 9 | using System.Linq; 10 | 11 | using Microsoft.VisualStudio.TestTools.UnitTesting; 12 | 13 | using Telerik.JustMock; 14 | 15 | using TfsApi.Administration; 16 | using TfsApi.Administration.Contracts; 17 | using TfsApi.Administration.Dto; 18 | using TfsApi.Administration.Tests; 19 | 20 | #endregion 21 | 22 | // ReSharper disable InconsistentNaming 23 | [TestClass] 24 | [ExcludeFromCodeCoverage] 25 | public class TeamManagerTests 26 | { 27 | [TestMethod] 28 | public void ctor_TeamManager() 29 | { 30 | ProjectDetail projectDetail = this.CreateProjectDetail(); 31 | 32 | var obj = TeamManagerFactory.GetManager(projectDetail); 33 | } 34 | 35 | [TestMethod] 36 | public void ListTeams_WithDefaults_ShouldReturnListWithCountGreaterThan0() 37 | { 38 | ProjectDetail projectDetail = this.CreateProjectDetail(); 39 | 40 | var obj = TeamManagerFactory.GetManager(projectDetail); 41 | 42 | int expectedCount = obj.ListTeams().Count; 43 | 44 | Assert.IsTrue(expectedCount > 0); 45 | } 46 | 47 | [TestMethod] 48 | public void TeamExists_WithValidTeamName_ShouldReturnTrue() 49 | { 50 | ProjectDetail projectDetail = this.CreateProjectDetail(); 51 | 52 | var obj = TeamManagerFactory.GetManager(projectDetail); 53 | string expectedTeamName = GetRandomGuid() + " Team"; 54 | 55 | obj.AddTeam(expectedTeamName); 56 | 57 | //Assert.IsTrue(obj.ListTeams().Where(o => o.TeamName == TestConstants.TfsTeamProjectName).First().Teams.Exists(o => o.TeamName == expectedTeamName)); 58 | var actual = obj.TeamExists(expectedTeamName); 59 | Assert.IsTrue(actual); 60 | } 61 | 62 | [TestMethod] 63 | public void AddTeam_WithDefaults_ShouldReturnListWithNewTeamInList() 64 | { 65 | ProjectDetail projectDetail = this.CreateProjectDetail(); 66 | 67 | var obj = TeamManagerFactory.GetManager(projectDetail); 68 | string expectedTeamName = GetRandomGuid() + " Team"; 69 | 70 | obj.AddTeam(expectedTeamName); 71 | 72 | //Assert.IsTrue(obj.ListTeams().Where(o => o.TeamName == TestConstants.TfsTeamProjectName).First().Teams.Exists(o => o.TeamName == expectedTeamName)); 73 | var currentTeams = obj.ListTeams(); 74 | Assert.IsTrue(currentTeams.Exists(o => o.TeamName == expectedTeamName)); 75 | } 76 | 77 | [TestMethod] 78 | public void DeleteTeam_WithDefaults_ShouldReturnListWithDeletedTeamNotInList() 79 | { 80 | ProjectDetail projectDetail = this.CreateProjectDetail(); 81 | 82 | var obj = TeamManagerFactory.GetManager(projectDetail); 83 | string expectedTeamName = GetRandomGuid() + " Team"; 84 | 85 | // Add Team 86 | obj.AddTeam(expectedTeamName); 87 | var currentTeams = obj.ListTeams(); 88 | Assert.IsTrue(currentTeams.Exists(o => o.TeamName == expectedTeamName)); 89 | 90 | // Delete Team 91 | obj.DeleteTeam(expectedTeamName); 92 | 93 | 94 | //Check for team deleted 95 | 96 | } 97 | 98 | private ProjectDetail CreateProjectDetail() 99 | { 100 | return new ProjectDetail 101 | { 102 | CollectionUri = TestConstants.TfsCollectionUri, 103 | ProjectName = TestConstants.TfsTeamProjectName 104 | }; 105 | } 106 | 107 | private static string GetRandomGuid() 108 | { 109 | return Guid.NewGuid().ToString("N"); 110 | } 111 | } 112 | 113 | // ReSharper restore InconsistentNaming 114 | } -------------------------------------------------------------------------------- /Help/html/986df333-d2d4-78f7-5df5-0d5f8c4d7903.htm: -------------------------------------------------------------------------------- 1 | ITeamProjectCollections Properties
ITeamProjectCollections PropertiesTfs Api
The ITeamProjectCollections type exposes the following members.
Properties

9 |   10 | NameDescription
Public propertyTfsUri
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/html/23807fca-bd28-d460-c720-74988ef0a845.htm: -------------------------------------------------------------------------------- 1 | TeamProjectFactory Methods
TeamProjectFactory MethodsTfs Api
The TeamProjectFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberCreateTeamProjectMananger
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/html/e3201568-3ff9-86c9-8136-6fdd1b8bc97b.htm: -------------------------------------------------------------------------------- 1 | IterationManagerFactory Methods
IterationManagerFactory MethodsTfs Api
The IterationManagerFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberGetManager
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/html/1c663dcd-9276-b2da-1762-411f4c71e114.htm: -------------------------------------------------------------------------------- 1 | ProcessTemplateFactory Methods
ProcessTemplateFactory MethodsTfs Api
The ProcessTemplateFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberCreateProcessTemplateMananger
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/LoadIndexKeywords.aspx: -------------------------------------------------------------------------------- 1 | <%@ Page Language="C#" EnableViewState="False" %> 2 | 3 | 103 | -------------------------------------------------------------------------------- /Help/html/fe25f5a0-11d4-4c8b-c717-f662ddd4fba7.htm: -------------------------------------------------------------------------------- 1 | TeamProjectCollectionFactory Methods
TeamProjectCollectionFactory MethodsTfs Api
-------------------------------------------------------------------------------- /Help/html/edbc8ac6-4dd1-3a54-71a5-50e0fb0e5cfe.htm: -------------------------------------------------------------------------------- 1 | TeamProjectFactory Members
TeamProjectFactory MembersTfs Api

The TeamProjectFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberCreateTeamProjectMananger
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/html/f39385a5-359e-07a8-d6c0-62ba9d936a97.htm: -------------------------------------------------------------------------------- 1 | IterationManagerFactory Members
IterationManagerFactory MembersTfs Api

The IterationManagerFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberGetManager
Back to Top
See Also

-------------------------------------------------------------------------------- /Help/html/b28561b2-3b4d-99cd-0bd4-369e4a72ab00.htm: -------------------------------------------------------------------------------- 1 | ProcessTemplateFactory Members
ProcessTemplateFactory MembersTfs Api

The ProcessTemplateFactory type exposes the following members.
Methods

9 |   10 | NameDescription
Public methodStatic memberCreateProcessTemplateMananger
Back to Top
See Also

--------------------------------------------------------------------------------