Global.asax.cs
private static DateTime taskLastRun;
void Application_Start(object sender, EventArgs e)
{
taskLastRun= DateTime.Now;
}
void Session_Start(object sender, EventArgs e)
{
DoTask();
}
/*Private method implemented in Global.asax file.
* Example Task to run every time application runs
* In this, it will delete the one day old files stored in uploads directory.
*/
static void DoTask()
{
var aDayAgo = DateTime.Now.AddDays(-1);
if (taskLastRun.IsGreaterThan(aDayAgo))
{
var path = HttpContext.Current.Server.MapPath("Uploads");
var folder = new DirectoryInfo(path);
FileInfo[] files = folder.GetFiles();
foreach (var file in files)
{
if(file.CreationTime.IsOlderThan(aDayAgo))
{
File.Delete(path + file.Name);
}
}
taskLastRun= DateTime.Now;
}
}
//Extension method to compare two dates
public static bool IsGreaterThan(this DateTime dt1, DateTime dt2)
{
return dt1 < dt2;
}
No comments:
Post a Comment