Aclarar antes que nada que trabajo con Sharepoint 2010. Llevo días liado buscando información y probando sin conseguir resultados apenas. Necesito conseguir el ID de un determinado documento de la librería haciendo una consulta en la
que comparo que el nombre contenga un string que yo le paso. El código sería algo así:
string Con = "<Where><Contains><FieldRef Name='Title' /><Value Type='Text'>" + NombreDocumento + "</Value></Contains></Where>";
SPQuery Quer = new SPQuery();
Quer.Query = Con;
SPListItem itmDoc = ConsultaDocumento(string.Empty, LISTA_DOCUMENTOS, Quer);
if (itmDoc != null)
{
IdDocumento = int.Parse(itmDoc[FIELD_ID].ToString());
btnEliminarDoc.Visible = true;
}
private SPListItem ConsultaDocumento(string ListFullyqualifiedName, string Lista, SPQuery Consulta)
{
SPListItem itemDocumento = null;
try
{
SPWeb webInUserContext = SPContext.Current.Web;
SPSite SiteInUserContext = SPContext.Current.Site;
Guid webGuid = webInUserContext.ID;
Guid siteGuid = SiteInUserContext.ID;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (var mySite = new SPSite(siteGuid))
{
using (var myWeb = string.IsNullOrEmpty(SubSite) ? mySite.OpenWeb(webGuid) : mySite.OpenWeb(SubSite))
{
SPList lst = null;
lst = !string.IsNullOrEmpty(ListFullyqualifiedName) ? myWeb.GetListFromUrl(ListFullyqualifiedName) : myWeb.Lists[Lista];
SPListItemCollection MiColeccion = lst.GetItems(Consulta);
if (MiColeccion.Count > 0)
itemDocumento = MiColeccion[0];
else
itemDocumento = null;
}
}
});
}
catch (Exception ex)
{
ErrorSettings(ex);
}
return itemDocumento;
}
En la primera parte llamo a la función que pongo en el segundo bloque. No salta error, simplemente no devuelve ningún valor. He comprobado que entro en la lista correcta y tambien que el documento que busco exista.
¿Alguna solución? Gracias por su tiempo