private static IEnumerable<FileEntry> TrimPaths(IEnumerable<FileEntry> fileEntries, dynamic rule) { var trimPath = rule.trimPath.Value as string ?? TrimPath.none.ToString(); var trim = TrimPath.none; if (!Enum.TryParse(trimPath, true, out trim)) { AutopackageMessages.Invoke.Warning(MessageCode.TrimPathOptionInvalid, rule.trimPath, "trim-path option '{0}' not valid, assuming 'none'", trimPath); } switch (trim) { case TrimPath.all: return fileEntries.Select(each => new FileEntry (each.SourcePath, Path.GetFileName(each.DestinationPath))).ToList(); case TrimPath.minimal: return fileEntries.GetMinimalPaths().ToList(); } return fileEntries; }