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.