Resulta que hoy tuve que realizar una serie de actividades relacionadas con la manipulación y filtrado de datos que residen en SharePoint y para mejorar mi experiencia como programador recurrí al uso de LINQ to DataSet.
He aquí un ejemplo que lee la información de todos los usuarios de mi colección de sitios:
using(SPSite site = new SPSite("http://urldemisitio")) { SPWeb rootWeb = site.RootWeb; DataTable dt = rootWeb.SiteUserInfoList.Items.GetDataTable(); // retorna un datatable de ADO.NET // usando el metodo GetDataTable de la coleccion Items puedo trabjar con el
// mediante dt.AsEnumerable()
var users = from user in dt.AsEnumerable() where user.Field<string>("ContentType").Equals("Person") select new { ID = user.Field<int>("ID"), FirstName = user.Field<string>("FirstName"), LastName = user.Field<string>("LastName"), Title = user.Field<string>("Title"), UserName = user.Field<string>("UserName"), Mail = user.Field<string>("Email"), Department = user.Field<string>("Department"), JobTitle = user.Field<string>("JobTitle"), Office = user.Field<string>("Office"), WorkPhone = user.Field<string>("WorkPhone") }; // aqui podemos trabajar con nuestra coleccion users }
Es importante puntualizar que este se debe a .NET Framework 3.5, en otras palabras para poder soportar este
codigo dentro de nuestro server debemos de tener instalada dicha version.