public void SourceLocationShouldScanExample14() { var loc = new LocalSourceLocation(); loc.LastCompletedScan = DateTime.Now.AddHours(-1250); loc.Priority = ArchivialLibrary.Files.FileBackupPriority.Low; var options = new ArchivialLibrary.Folders.ScanFrequencies(); options.LowPriorityScanFrequencyInHours = 72; Assert.IsTrue(loc.ShouldScan(options)); }
public void SourceLocationShouldScanExample5() { var loc = new LocalSourceLocation(); loc.LastCompletedScan = DateTime.Now.AddMinutes(-61); loc.Priority = ArchivialLibrary.Files.FileBackupPriority.High; var options = new ArchivialLibrary.Folders.ScanFrequencies(); options.HighPriorityScanFrequencyInHours = 1; Assert.IsTrue(loc.ShouldScan(options)); }
public void SourceLocationShouldScanExample8() { var loc = new LocalSourceLocation(); loc.LastCompletedScan = DateTime.Now.AddHours(-23); loc.Priority = ArchivialLibrary.Files.FileBackupPriority.Medium; var options = new ArchivialLibrary.Folders.ScanFrequencies(); options.MedPriorityScanFrequencyInHours = 24; Assert.IsFalse(loc.ShouldScan(options)); }
public void SourceLocationShouldScanExample1() { var loc = new LocalSourceLocation(); loc.LastCompletedScan = null; var options = new ArchivialLibrary.Folders.ScanFrequencies(); options.LowPriorityScanFrequencyInHours = 72; options.MedPriorityScanFrequencyInHours = 24; options.HighPriorityScanFrequencyInHours = 1; Assert.IsTrue(loc.ShouldScan(options)); }
/// <summary> /// Checks to see if a source location is ready to scan again. /// </summary> /// <remarks> /// The source location is ready to scan again once enough time has elapsed since the previous scan. /// </remarks> /// <returns></returns> public bool ShouldScan(ScanFrequencies options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (LastCompletedScan == null) { // no scan has completed before return(true); } DateTime lastAcceptableScanPoint; if (Priority == FileBackupPriority.Low) { lastAcceptableScanPoint = DateTime.Now.AddHours(-options.LowPriorityScanFrequencyInHours); } else if (Priority == FileBackupPriority.Medium) { lastAcceptableScanPoint = DateTime.Now.AddHours(-options.MedPriorityScanFrequencyInHours); } else if (Priority == FileBackupPriority.High) { lastAcceptableScanPoint = DateTime.Now.AddHours(-options.HighPriorityScanFrequencyInHours); } else if (Priority == FileBackupPriority.Meta) { lastAcceptableScanPoint = DateTime.Now.AddHours(-options.HighPriorityScanFrequencyInHours); } else { throw new InvalidOperationException("Unexpected backup priority specified: " + Priority); } if (LastCompletedScan.Value < lastAcceptableScanPoint) { // a scan hasn't been completed recently. return(true); } else { // scan already completed recently. return(false); } }