c# tfs guid tfs-workitem shelveset

c# - Cómo encontrar un Shelveset usando la información provista por CodeReviewRequest



tfs guid (1)

IIdentityManagementService.ReadIdentities es lo que estás buscando.

Si tengo el nombre y el propietario de Shelveset, puedo encontrarlo con éxito utilizando el siguiente código:

foreach (Shelveset shelveset in versionControlServer.QueryShelvesets(workItem. Fields["Associated Context"].Value.ToString(), "NW//LFreeman"))

donde workItem es una instancia de un CodeReviewRequest workItem .

Puedo obtener el nombre de CodeReviewRequest from workItem.Fields["Associated Context"]

Si configuro el propietario como null como tal, devuelve una lista vacía. Se me informó que este método solo funcionará cuando el propietario se especifique como una cadena.

Estoy tratando de averiguar cómo conseguir el dueño.

Usando workItem.Fields["Associated Context Owner"].Value.ToString() , puedo obtener el GUID del propietario.

El desafío ahora es cómo convertir el GUID al propietario esperado que sería "NW / LFreeman".

Cuando workItems.Fields["Associated Context Owner"].Value.ToString() , esto es lo que veo:

c3741a78-1a44-4bf6-95b0-f360cd387f3e

¿Es posible recuperar "NW / LFreeman" de este GUID? Si es así, ¿qué método de llamada me permitirá hacer este mapeo?

Editar:

Aquí está el código que funcionó para mí basado en la respuesta y el enlace que se da:

Guid ownerId = new Guid(codeReviewRequestWorkItem.Fields["Associated Context Owner"].Value.ToString()); Guid[] teamFoundationIds = new Guid[1]; teamFoundationIds[0] = ownerId; TeamFoundationIdentity[] users = ims.ReadIdentities((Guid[])teamFoundationIds, MembershipQuery.None); Shelveset[] shelves = vcs.QueryShelvesets(codeReviewRequestWorkItem.Fields["Associated Context"].Value.ToString(), users[0].UniqueName.ToString());