private static ReadProjectResult TryReadProject( string path, out CsProjFileReader reader) { reader = null; try { Status.Start($"Read project: {path}"); reader = new CsProjFileReader(path); Status.Ok(); return(ReadProjectResult.Success); } catch (UnsupportedProjectException unsupported) { if (unsupported.IsValidModernCsProj) { Status.Ok(); return(ReadProjectResult.ModernProject); } Status.Fail(); return(ReadProjectResult.Error); } catch { Status.Fail(); return(ReadProjectResult.Error); } }
private static void RemoveProjectMatches( bool pretend, bool verbose, CsProjFileReader reader, List <string> args) { var exactMatches = FindExactMatchesIn(args); var partialMatches = FindPartialMatchesIn(args); var types = new[] { "Content", "Compile", "None" }; var anythingRemoved = false; types.ForEach(type => { reader.RemoveFilesOfType( type, fileName => { StartInspect(verbose, $" INSPECT ({type}) file: {fileName}"); var result = IsMatched(fileName, partialMatches, exactMatches); EndInspect(verbose, result); anythingRemoved = anythingRemoved || result; return(result); }, fileName => { Status.Clear(); if (!verbose) { Status.Clear(); Console.WriteLine($"\rRemove ({type}) project file: {fileName}"); } return(!pretend); }); }); if (anythingRemoved) { reader.Persist(); } Status.Clear(); }