static void AppOfflineFileChanged (object sender, FileSystemEventArgs args)
{
lock (appOfflineLock) {
bool offline;
switch (args.ChangeType) {
case WatcherChangeTypes.Created:
case WatcherChangeTypes.Changed:
offline = true;
break;
case WatcherChangeTypes.Deleted:
offline = false;
break;
case WatcherChangeTypes.Renamed:
RenamedEventArgs rargs = args as RenamedEventArgs;
if (rargs != null &&
String.Compare (rargs.Name, "app_offline.htm", StringComparison.OrdinalIgnoreCase) == 0)
offline = true;
else
offline = false;
break;
default:
offline = false;
break;
}
SetOfflineMode (offline, args.FullPath);
}
}