Problema ao atualizar item de um determinado tipo de conteúdo (derivado da pasta)
-
09-12-2019 - |
Pergunta
Estou tendo alguns problemas ao atualizar alguns itens no meu manipulador de eventos.
Tenho uma Biblioteca de Documentos na qual possuo pastas, itens e pasta do tipo conteúdo PRATICA, que deriva de pasta e possui o mesmo atributo dos demais itens da lista.
Então...O código que escrevi é invocado por um manipulador de eventos e deseja aplicar mods em todos os itens de uma determinada pasta.
Isso funciona para itens (como arquivos, etc.).Quando ele analisa uma subpasta e encontra o tipo de conteúdo correto, tenta modificar a coluna, mas nenhuma modificação foi aplicada (sem exceção e depuração, todas as instruções são passadas!!)
Alguma sugestão?
Obrigado!
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); }
}
Solução
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); }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange