private (FilePath filePath, string warningMessage) FindManifestFile() { if (!string.IsNullOrWhiteSpace(_explicitManifestFile)) { return(new FilePath(_explicitManifestFile), null); } var manifestFilesContainPackageId = _toolManifestFinder.FindByPackageId(_packageId); if (manifestFilesContainPackageId.Any()) { string warning = null; if (manifestFilesContainPackageId.Count > 1) { warning = string.Format( LocalizableStrings.SamePackageIdInOtherManifestFile, string.Join( Environment.NewLine, manifestFilesContainPackageId.Skip(1).Select(m => $"\t{m}"))); } return(manifestFilesContainPackageId.First(), warning); } return(_toolManifestFinder.FindFirst(), null); }
public static (FilePath?filePath, string warningMessage) ExplicitManifestOrFindManifestContainPackageId( this IToolManifestFinder toolManifestFinder, string explicitManifestFile, PackageId packageId) { if (!string.IsNullOrWhiteSpace(explicitManifestFile)) { return(new FilePath(explicitManifestFile), null); } IReadOnlyList <FilePath> manifestFilesContainPackageId; try { manifestFilesContainPackageId = toolManifestFinder.FindByPackageId(packageId); } catch (ToolManifestCannotBeFoundException e) { throw new GracefulException(new[] { e.Message, LocalizableStrings.NoManifestGuide }, verboseMessages: new[] { e.VerboseMessage }, isUserError: false); } if (manifestFilesContainPackageId.Any()) { string warning = null; if (manifestFilesContainPackageId.Count > 1) { warning = string.Format( LocalizableStrings.SamePackageIdInOtherManifestFile, string.Join( Environment.NewLine, manifestFilesContainPackageId.Skip(1).Select(m => $"\t{m}"))); } return(manifestFilesContainPackageId.First(), warning); } return(null, null); }