[MOSS 2010] Obtener los documentos de un Document Set

Para una demo desde un cliente VSTO Word, necesitaba mostrar los documentos de un Document Set de SharePoint 2010 en un TaskPane y en un principio había pensado hacerlo con un control WebBrowser de WPF, pero al final por una serie de requerimientos y problemas he tenido que hacerlo a través de un servicio web (Por ser versiones de framework diferentes), así que aquí os dejo el código y sí alguien encuentra una manera mejor o más efectiva de hacerlo, que me ponga un comment:

 

[WebMethod]
public List<Document> GetDocuments(Guid listId, int documentSetId)
{
    List<Document> documents = null;
 
    using (var site = new SPSite("http://tu_site"))
    {
        using (var web = site.OpenWeb("tu_web"))
        {
            var list = web.Lists.GetList(listId, true);
 
            var item = list.Items.OfType<SPListItem>().
                            SingleOrDefault(
                                i => i["ID"] != null && 
                                     Convert.ToInt32(i["ID"]) == documentSetId);
 
            if (item != null)
            {
                var documentSet = DocumentSet.GetDocumentSet(item.Folder);
 
                documents = documentSet.Folder.Files.OfType<SPFile>().Select(
                    f => new Document
                                {
                                    Title = f.Title,
                                    Url = f.Url,
                                    IconUrl = f.IconUrl
                                }).ToList();
            }
        }
    }
 
    return documents;
}

Saludos.

Published 4/10/2010 15:06 por Luis Ruiz Pavón
Archivado en: ,
Comparte este post:
http://geeks.ms/blogs/lruiz/archive/2010/10/04/moss-2010-obtener-los-documentos-de-un-document-set.aspx