Ejemplo n.º 1
0
        public void Clean_WithNonexistingPath_DoesNothing()
        {
            Directory.Delete(_tempFolder);

            var cleaner = new FolderCleaner(@"C:\SomeFolderThatDoesnotExist\With\Some\Sub\Folder");

            cleaner.Clean();
        }
Ejemplo n.º 2
0
 public SitesController(
     ProbeDbContext dbContext,
     ACTokenManager tokenManager,
     FolderCleaner folderCleaner)
 {
     _dbContext     = dbContext;
     _tokenManager  = tokenManager;
     _folderCleaner = folderCleaner;
 }
Ejemplo n.º 3
0
 public FoldersController(
     ProbeDbContext dbContext,
     FolderLocator folderLocator,
     FolderCleaner folderCleaner)
 {
     _dbContext     = dbContext;
     _folderLocator = folderLocator;
     _folderCleaner = folderCleaner;
 }
Ejemplo n.º 4
0
        public void Clean_WithEmptyFolder_DoesNothing()
        {
            CreateTempFiles(_tempFolder, 6, TimeSpan.Zero);

            var cleaner = new FolderCleaner(_tempFolder);

            cleaner.Clean();

            Assert.IsTrue(Directory.Exists(_tempFolder), "The directory did not exist after cleaning up: " + _tempFolder);
        }
Ejemplo n.º 5
0
        public void Clean_WithSomeFiles_CleansAllFiles()
        {
            CreateTempFiles(_tempFolder, 4, TimeSpan.Zero);

            var cleaner = new FolderCleaner(_tempFolder);

            cleaner.Clean();

            Assert.IsTrue(Directory.Exists(_tempFolder), "The directory did not exist after cleaning up: " + _tempFolder);
            Assert.IsFalse(Directory.EnumerateFileSystemEntries(_tempFolder).Any(), "The directory is not empty after cleaning up: " + _tempFolder);
        }
        private void CleanFolder(string folder)
        {
            var folderCleaner = new FolderCleaner(folder);

            folderCleaner.Clean(_timeSpan);

            if (folderCleaner.CleanupExceptions.Any())
            {
                var exception = folderCleaner.CleanupExceptions.First();
                _logger.Debug($"Exception while cleaning up {exception.Key}: {exception.Value}");
            }
        }
Ejemplo n.º 7
0
        public void RunAll()
        {
            var jsonSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            try
            {
                // Backup SQL Server files.
                var backupScriptPath = ConfigurationManager.AppSettings["SqlScriptPath"];
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, "Backing up SQL Server files to " + backupScriptPath));
                var scriptRunner = new SqlScriptRunner(backupScriptPath);
                scriptRunner.Run();
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, "Done Backing up SQL Server files."));

                // Delete backups over x days old.
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, "Cleaning up files older than " + ConfigurationManager.AppSettings["MaxAgeOfBackupsInDays"] + " days."));
                var cleaner = new FolderCleaner(ConfigurationManager.AppSettings["SqlBackupPath"]);
                cleaner.Run();
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, "Done cleaning up files. " + cleaner.DeletedFiles.Count + " files were deleted."));
                if (cleaner.DeletedFiles.Count > 0)
                {
                    _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, JsonConvert.SerializeObject(cleaner.DeletedFiles)));
                }
            }
            catch (Exception ex)
            {
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, "Error Occurred", true));
                _log.LogEntries.Add(new ActivityLog.LogEntry(DateTime.Now, JsonConvert.SerializeObject(ex, Formatting.Indented, jsonSettings), true));
                throw ex;
            }
            finally
            {
                // TODO: Email a confirmation that this task was performed.
                var msg = new MailMessage();
                msg.To.Add(new MailAddress(ConfigurationManager.AppSettings["NotificationRecipient"]));
                msg.From    = new MailAddress(ConfigurationManager.AppSettings["NotificationFromAddress"]);
                msg.Subject = ConfigurationManager.AppSettings["NotificationSubject"];

                if (_log.HasErrors)
                {
                    msg.Subject  = "Error Occurred " + msg.Subject;
                    msg.Priority = MailPriority.High;
                }

                msg.Body       = GetEmailBody();
                msg.IsBodyHtml = false;
                var client = new SmtpClient();
                client.Send(msg);
            }
        }
Ejemplo n.º 8
0
        public void Clean_WithSomeFilesAndSubfolder_CleansAllFilesAndRemovesSubfolders()
        {
            CreateTempFiles(_tempFolder, 6, TimeSpan.Zero);
            var subFolder = Path.Combine(_tempFolder, "Subfolder");

            Directory.CreateDirectory(subFolder);
            CreateTempFiles(subFolder, 6, TimeSpan.Zero);

            var cleaner = new FolderCleaner(_tempFolder);

            cleaner.Clean();

            Assert.IsTrue(Directory.Exists(_tempFolder), "The directory did not exist after cleaning up: " + _tempFolder);
            Assert.IsFalse(Directory.EnumerateFileSystemEntries(_tempFolder).Any(), "The directory is not empty after cleaning up: " + _tempFolder);
        }
Ejemplo n.º 9
0
        public void CleanWithTimeSpan_WithSomeFiles_CleansAllFilesOlderThanTimeSpan()
        {
            CreateTempFiles(_tempFolder, 6, TimeSpan.FromDays(2));
            CreateSubFolderWithSomeFiles(6, TimeSpan.FromDays(2));
            var files = CreateSubFolderWithSomeFiles(1, TimeSpan.Zero);

            var cleaner = new FolderCleaner(_tempFolder);

            cleaner.Clean(TimeSpan.FromDays(1));

            Assert.IsTrue(Directory.Exists(_tempFolder), "The directory did not exist after cleaning up: " + _tempFolder);
            Assert.AreEqual(1, Directory.GetDirectories(_tempFolder).Count(), "There was more than one folder left");
            Assert.AreEqual(1, Directory.GetFiles(_tempFolder, "*", SearchOption.AllDirectories).Count(), "Found more than the one file after cleaning up");
            Assert.AreEqual(files.First(), Directory.GetFiles(_tempFolder, "*", SearchOption.AllDirectories).First());
        }
Ejemplo n.º 10
0
 public FilesController(
     ProbeDbContext dbContext,
     FolderLocator folderLocator,
     FolderCleaner folderCleaner,
     IConfiguration configuration,
     FolderRefactor folderRefactor,
     ServiceLocation serviceLocation)
 {
     _dbContext       = dbContext;
     _folderLocator   = folderLocator;
     _configuration   = configuration;
     _folderRefactor  = folderRefactor;
     _serviceLocation = serviceLocation;
     _folderCleaner   = folderCleaner;
 }
Ejemplo n.º 11
0
 public void SetUp()
 {
     _tempFolder    = TempFileHelper.CreateTempFolder("FolderCleanerTest");
     _folderCleaner = new FolderCleaner();
 }