Approve all files in library
30/10/2012 21:43
internal static void ApproveAllSubfolders(SPFolder folder, StringBuilder writer, bool needsApproval)
{
if (folder.SubFolders != null)
{
writer.Append("\t");
foreach (SPFolder subfolder in folder.SubFolders)
{
if (subfolder.Name != "Forms")
{
ApproveAllSubfolders(subfolder, writer, needsApproval);
}
}
}
writer.Append(string.Format("<b>{0}</b></br>", folder.Name));
SPFileCollection files = folder.Files;
foreach (SPFile file in files)
{
if (file.CheckOutType == SPFile.SPCheckOutType.None)
{
//when file is checked - in
writer.Append(string.Format("<li>{0} - checked in</li>", file.Name));
PublishFile(file, needsApproval, writer);
}
else
{
//when file is checked - out
writer.Append(string.Format("<li>{0} - checked out</li>", file.Name));
file.CheckIn("Checked in by code.");
PublishFile(file, needsApproval, writer);
}
}
}
internal static void PublishFile(SPFile file, bool needsApproval, StringBuilder writer)
{
if (needsApproval)
{
//approval workflow
if (file.Level != SPFileLevel.Published)
{
//if it's not published, publish it
writer.Append("We will approve file.</br>");
try
{
file.Approve("Approved by code.");
}
catch (Exception ex)
{
SPDiagnosticsService.Local.WriteTrace(0, category, TraceSeverity.Unexpected, "Aconcagua.Lukas.CustomActionMenuWithCode" + ex);
throw;
}
}
}
else
{
//if approval is not enabled, only publishing
if (file.Level != SPFileLevel.Published)
{
writer.Append("We will publish file.</br>");
try
{
file.Publish("Published by code.");
}
catch (Exception ex)
{
SPDiagnosticsService.Local.WriteTrace(0, category, TraceSeverity.Unexpected, "Aconcagua.Lukas.CustomActionMenuWithCode" + ex);
throw;
}
}
}
}