public static void Show(DeleteGlacierFilesResult result) { ConsoleColor defaultColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(); Console.WriteLine(" Deleted Files Count: {0:n0}", result.DeletedFilesCount); Console.WriteLine(" Deleted Files Size: {0}", result.DeletedFilesSizeBytes.ToFriendlyFileSize()); Console.WriteLine(" Deleted Files $/month: {0}", result.DeletedFilesSizeBytes.ToCost()); Console.WriteLine("Deletion Failures Count: {0:n0}", result.DeletionFailuresCount); Console.WriteLine(); Console.WriteLine("Path | Result | Failure Details"); Console.WriteLine("-".PadRight(totalWidth: 78, paddingChar: '-')); IEnumerable <GlacierDeleteFileResult> files = result.DeletedFiles; foreach (GlacierDeleteFileResult g in files) { Console.WriteLine("{1,-6} | {0} | {2}", g.NormalizedFilePath, g.DeleteFailed ? "FAILED" : "OK", g.DeleteFailure); } Console.WriteLine(); Console.WriteLine(" Deleted Files Count: {0:n0}", result.DeletedFilesCount); Console.WriteLine(" Deleted Files Size: {0}", result.DeletedFilesSizeBytes.ToFriendlyFileSize()); Console.WriteLine(" Deleted Files $/month: {0}", result.DeletedFilesSizeBytes.ToCost()); Console.WriteLine("Deletion Failures Count: {0:n0}", result.DeletionFailuresCount); Console.ForegroundColor = defaultColor; }
public void Execute() { VaultInventory vaultInventory = VaultInventoryParser.Parse(_vaultInventoryFile); NasFiles nasFiles = NasBackup.GetFiles(_nasPath); IEnumerable <GlacierFile> glacierFiles = vaultInventory.ArchiveList; IEnumerable <File> localFiles = nasFiles.Files; IEnumerable <GlacierFile> glacierExtraAgeFiles = FileMatcher.GetGlacierExtraFiles(glacierFiles, localFiles, _glacierOlderThan); var deleteFileResults = new List <GlacierDeleteFileResult>(); using (var mgr = new ArchiveTransferManager(RegionEndpoint.USWest2)) { foreach (GlacierFile g in glacierExtraAgeFiles) { string deleteFailure = null; bool isOldEnough = g.AgeDays > 90; if (isOldEnough) { try { mgr.DeleteArchive(vaultName: "backup-home", archiveId: g.ArchiveId); } catch (Exception ex) { deleteFailure = ex.Message; } } else { deleteFailure = string.Format("File is not old enough to be deleted. Age: [{0}]", g.AgeDays); } var deleteFileResult = new GlacierDeleteFileResult(g.NormalizedFilePath, deleteFailure, g.SizeBytes); deleteFileResults.Add(deleteFileResult); } } var result = new DeleteGlacierFilesResult(deleteFileResults); ConsoleView.Show(result); }