Problema Aggiornamento dell'articolo di un determinato tipo di contenuto (derivante dalla cartella)
-
09-12-2019 - |
Domanda
Sto incontrando alcuni problemi ad aggiornare alcuni articoli nel mio gestore di eventi.
Ho una libreria documenti in cui ho cartelle, articoli e cartella del tipo di contenuto Pratica, che deriva dalla cartella e ha lo stesso attributo degli altri articoli nell'elenco.
Allora ... Il codice che ho scritto viene invocato da un gestore di eventi e vuoi applicare mod su tutti gli elementi sotto una determinata cartella ..
Funziona per gli articoli (come file come i file ecc.).Quando analizza una sottocartella e trovarlo del tipo di contenuto giusto tenta di modificare la colonna ma non è stato applicato alcun modifica (senza eccezione e debug di ogni istruzione è passata !!)
Qualsiasi suggerimento?
Grazie!
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); }
}
. Soluzione
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); }
.
}