En este artículo os comentaba como activar soluciones Sandbox, y por ende características, utilizando el modelo de objetos en cliente (CSOM). Pero, ¿Cómo puedo trabajar con la galería de soluciones Sandbox desde el CSOM? Pues de la misma forma como se trabajaría con una lista o biblioteca convencional de un sitio. Al fin y al cabo, la galería de soluciones no es más que una biblioteca de SharePoint:
-
En el ejemplo en cuestión, y para acceder a la galería de soluciones en SharePoint Online, necesitamos necesariamente hacer uso de nuevo de un ClaimClientContext gracias al ejemplo de Rober Bogue y que nos permitirá especificar las credenciales para Office 365.
-
A partir de aquí, trabajar con la galería de soluciones pasa por acceder a la misma mediante el método GetCatalog y el identificador de la misma (121) para posteriormente acceder a las soluciones almacenadas y mostrar la correspondiente información por pantalla.
1: static void LeerSoluciones()
2: {
3: try
4: {
5: string targetSite =
6: "https://miccantabria.sharepoint.com/sites/O365Camps";
7: using (MO_NET.ClientContext ctx = ClaimClientContext.GetAuthenticatedContext(targetSite))
8: {
9: if (ctx != null)
10: {
11: //Acceso a la galería de soluciones
12: MO_NET.List solutionList = ctx.Site.GetCatalog(121);
13:
14: //Acceso al listado de soluciones
15: MO_NET.ListItemCollection licCollection =
16: solutionList.GetItems(MO_NET.CamlQuery.CreateAllItemsQuery());
17:
18: //Definición de operación
19: ctx.Load(licCollection);
20:
21: //Realización de operación
22: ctx.ExecuteQuery();
23:
24: //Procesado de resultados
25: foreach (MO_NET.ListItem li in licCollection)
26: {
27: MO_NET.FieldLookupValue fl= (MO_NET.FieldLookupValue)li.FieldValues["Status"];
28: //Solución activada o no
29: if (fl!=null)
30: {
31: Console.WriteLine(li["ID"] + " - " + li["FileRef"] + " - " + fl.LookupValue);
32: }
33: else
34: {
35: Console.WriteLine(li["ID"] + " - " + li["FileRef"] + " - 0");
36: }
37: }
38: }
39: }
40: }
41: catch (Exception ex)
42: {
43: Console.WriteLine("Error: {0}", ex.Message);
44: }
45: }
- Sin más, comprobamos que soluciones tenemos disponibles en la galería.
- Y por supuesto, nuestra salida por pantalla muestra las mismas soluciones.
Referencias: