Problema actualizando el artículo de un cierto tipo de contenido (derivado de la carpeta)
-
09-12-2019 - |
Pregunta
Estoy encontrando algunos problemas actualizando algunos artículos en mi manejador de eventos.
Tengo una biblioteca de documentos en la que tengo carpetas, elementos y carpeta de contenido de contenido PRICA, que se deriva de la carpeta y tiene el mismo atributo de los otros elementos de la lista.
Entonces ... El código que he escrito es invocado por un manejador de eventos y desea aplicar mods en todos los artículos bajo una cierta carpeta.
Esto funciona para artículos (como archivos, etc.).Cuando analice una subcarpeta y encuentre que el tipo de contenido correcto intenta modificar la columna, pero no se ha aplicado modificar (sin excepción y depuración, se pasa cada instrucción.)
¿Alguna sugerencia?
¡Gracias!
private void RecursiveUpdateItemCliente(SPFolder folder, string RagioneSociale, Guid fieldRS)
{
foreach (SPFile spfile in folder.Files)
{
this.EventFiringEnabled = false;
spfile.Item[fieldRS] = RagioneSociale;
spfile.Item.SystemUpdate();
this.EventFiringEnabled = true;
}
foreach (SPFolder spfolder in folder.SubFolders)
{
if ((spfolder.Name != "Forms") && (spfolder.Item.ContentTypeId.IsChildOf(new SPContentTypeId(PRATICA))))
{
this.EventFiringEnabled = false;
folder.Item[fieldRS] = RagioneSociale;
folder.Item.SystemUpdate();
this.EventFiringEnabled = true;
}
RecursiveUpdateItemCliente(spfolder, RagioneSociale, fieldRS); }
}
Solución
private void RecursiveUpdateItemCliente(SPFolder folder, string RagioneSociale, Guid fieldRS)
{
foreach (SPFile spfile in folder.Files)
{
this.EventFiringEnabled = false;
spfile.Item[fieldRS] = RagioneSociale;
spfile.Item.SystemUpdate();
this.EventFiringEnabled = true;
}
foreach (SPFolder spfolder in folder.SubFolders)
{
if ((spfolder.Name != "Forms") && (spfolder.Item.ContentTypeId.IsChildOf(new SPContentTypeId(PRATICA))))
{
//I MUST GET SPFOLDER and NOT folder element...
this.EventFiringEnabled = false;
spfolder.Item[fieldRS] = RagioneSociale;
spfolder.Item.SystemUpdate();
this.EventFiringEnabled = true;
}
RecursiveUpdateItemCliente(spfolder, RagioneSociale, fieldRS); }
}