DotNetNuke Scheduler

Code


public class ArchiveEventLog : DotNetNuke.Services.Scheduling.SchedulerClient
{
    
public ArchiveEventLog(DotNetNuke.Services.Scheduling.ScheduleHistoryItem objScheduleHistoryItem) : base()
    {
            
//REQUIRED
        this.ScheduleHistoryItem = objScheduleHistoryItem;
    }
    
public override void DoWork()
    {
        
try {
            
//notification that the event is progressing
            
//this is optional
            this.Progressing();
            
//OPTIONAL
            
//get the directory that logs are written to
            string LogDirectory = null;
            LogDirectory 
= Common.Globals.HostMapPath + "Logs\\";
           
            
//create a folder with today's date
            string FolderName = null;
            FolderName 
= LogDirectory + Now.Month.ToString + "-" + Now.Day.ToString + "-" + Now.Year.ToString + "\\";
            
if (!IO.Directory.Exists(FolderName)) {
                IO.Directory.CreateDirectory(FolderName);
            }
           
            
//get the files in the log directory
            string[] s = null;
            s 
= IO.Directory.GetFiles(LogDirectory);
            
//loop through the files
            int i = 0;
            
for (i = 0; i <= s.Length - 1; i++) {
                IO.FileInfo OldFileInfo 
= new IO.FileInfo(s(i));
                
//move all files to the new folder except the file
                
//used to store pending log notifications
                if (OldFileInfo.Name != "PendingLogNotifications.xml.resources") {
                    
string NewFileName = null;
                    NewFileName 
= FolderName + OldFileInfo.Name;
                    
//check to see if the new file already exists
                    if (IO.File.Exists(NewFileName)) {
                        
string errMessage = null;
                        errMessage 
= "An error occurred archiving " + "log file to " + NewFileName + ". The file already exists.";
                        LogException(
new BasePortalException(errMessage));
                    }
                    
else {
                        IO.File.Move(OldFileInfo.FullName, NewFileName);
                            
//OPTIONAL
                        this.ScheduleHistoryItem.AddLogNote("Moved " + OldFileInfo.FullName + " to " + FolderName + OldFileInfo.Name + ".");
                       
                    }
                }
            }
           
                
//REQUIRED
            this.ScheduleHistoryItem.Succeeded = true;
        }
        
catch (Exception exc) {
           
            
//REQUIRED
           
            
this.ScheduleHistoryItem.Succeeded = false;
            
//REQUIRED
           
            
this.ScheduleHistoryItem.AddLogNote(string.Format("Archiving log files failed.", exc.ToString));
            
//OPTIONAL
           
            
//notification that we have errored
            this.Errored(exc);
            
//REQUIRED
           
            
//log the exception
                
//OPTIONAL
            LogException(exc);
        }
    }
}

你可能感兴趣的:(dotnetnuke)