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());