public void Tag_AppendsTimeStamp_ToEndOfFileName() { DateFileTagger fileTagger = new DateFileTagger(); FileInfo inputFile = new FileInfo("../../../Utilities/TestData/TestFileToArchive.txt"); DateTime timestamp = DateTime.Now; //Match String such as /Utilities/TestData/TestFileToArchive_20002021-142245.txt Regex pattern = new Regex("^.+_[\\d-]+\\..*"); FileInfo result = fileTagger.Tag(inputFile, timestamp); String resultFullName = result.FullName; Assert.Matches(pattern, resultFullName); }
public void Run() { try { if (!VerifyImportFiles()) { logger.Error("Required Files do not exist. Exiting the application."); Environment.Exit(0); } IEnumerable <EverfiUser> userList = GetEverfiUsersFromCSV(); logger.Information("Loading Template at: {0}", templateFile.FullName); using (EverfiExcelTemplate template = new EverfiExcelTemplate(this.templateFile, this.logger)) { logger.Information("Importing CSV File from: {0}", csvFile.FullName); template.ImportDataFromList(userList.ToList()); DateFileTagger fileTagger = new DateFileTagger(); FileInfo saveDestination = new FileInfo(Environment.ExpandEnvironmentVariables(this.configuration.ReportSavePath)); saveDestination = fileTagger.Tag(saveDestination, this.timeStamp); logger.Information("Saving report to: {0}", saveDestination.FullName); bool saveSuccessful = template.SaveTemplateTo(saveDestination); if (saveSuccessful) { logger.Information("Save successful | Path: {0}", saveDestination.FullName); DirectoryInfo archiveDirectory = new DirectoryInfo(Environment.ExpandEnvironmentVariables(configuration.ArchiveDirectory)); FileInfo archivedFile = this.fileArchiver.Archive(csvFile, archiveDirectory); if (!archivedFile.Exists) { logger.Warning("Could not archive the CSV File: {0}", archivedFile.FullName); } else { logger.Information("Archive successful: {0}", archivedFile.FullName); } } else { logger.Error("Failed to save the exported excel sheet in the specified location: {0}", saveDestination.FullName); Environment.Exit(0); } } } catch (Exception ex) { logger.Error("Something unexpected happened | Reason: {0}", ex); Environment.Exit(0); } }
public FileInfo Archive(FileInfo input, DirectoryInfo destination) { CreateDestinationDirectory(destination); String archiveName = fileTagger.Tag(input, this.timestamp).FullName; String fullArchivePath = Path.Combine(destination.FullName, Path.GetFileName(archiveName)); try { input.MoveTo(fullArchivePath); } catch (Exception exception) { log.Error("Could not create archive the provided file: {FullName}. REASON: {Message}", input.FullName, exception.Message); } return(new FileInfo(fullArchivePath)); }