public void Cleanup() { if (String.IsNullOrWhiteSpace(_configService.RecycleBin)) { logger.Info("Recycle Bin has not been configured, cannot cleanup."); return; } logger.Info("Removing items older than 7 days from the recycling bin"); foreach (var folder in _diskProvider.GetDirectories(_configService.RecycleBin)) { if (_diskProvider.GetLastFolderWrite(folder).AddDays(7) > DateTime.UtcNow) { logger.Trace("Folder hasn't expired yet, skipping: {0}", folder); continue; } _diskProvider.DeleteFolder(folder, true); } foreach (var file in _diskProvider.GetFiles(_configService.RecycleBin, SearchOption.TopDirectoryOnly)) { if (_diskProvider.GetLastFileWrite(file).AddDays(7) > DateTime.UtcNow) { logger.Trace("File hasn't expired yet, skipping: {0}", file); continue; } _diskProvider.DeleteFile(file); } logger.Trace("Recycling Bin has been cleaned up."); }
public void ConvertToLocalUrls(int seriesId, IEnumerable <MediaCover> covers) { foreach (var mediaCover in covers) { var filePath = GetCoverPath(seriesId, mediaCover.CoverType); mediaCover.Url = @"/MediaCover/" + seriesId + "/" + mediaCover.CoverType.ToString().ToLower() + ".jpg"; if (_diskProvider.FileExists(filePath)) { var lastWrite = _diskProvider.GetLastFileWrite(filePath); mediaCover.Url += "?lastWrite=" + lastWrite.Ticks; } } }
private List <LogFileResource> GetLogFiles() { var result = new List <LogFileResource>(); var files = _diskProvider.GetFiles(_appFolderInfo.GetLogFolder(), SearchOption.TopDirectoryOnly); for (int i = 0; i < files.Length; i++) { var file = files[i]; result.Add(new LogFileResource { Id = i + 1, Filename = Path.GetFileName(file), LastWriteTime = _diskProvider.GetLastFileWrite(file) }); } return(result.OrderByDescending(l => l.LastWriteTime).ToList()); }
public bool IsSatisfiedBy(LocalEpisode localEpisode) { if (localEpisode.ExistingFile) { _logger.Trace("{0} is in series folder, unpacking check", localEpisode.Path); return(true); } foreach (var workingFolder in _configService.DownloadClientWorkingFolders.Split('|')) { if (Directory.GetParent(localEpisode.Path).Name.StartsWith(workingFolder)) { if (_diskProvider.GetLastFileWrite(localEpisode.Path) > DateTime.UtcNow.AddMinutes(-5)) { _logger.Trace("{0} appears to be unpacking still", localEpisode.Path); return(false); } } } return(true); }