Bari.Plugins.VCpp.Commands.Clean.VcxprojCleaner.Clean C# (CSharp) Method

Clean() public method

Performs the additional cleaning step
public Clean ( ICleanParameters parameters ) : void
parameters ICleanParameters
return void
        public void Clean(ICleanParameters parameters)
        {
            foreach (var project in from module in suite.Modules
                                        from project in module.Projects.Concat(module.TestProjects)
                                        where project.RootDirectory != null
                                        select project)
            {
                var projectRoot = project.RootDirectory;
                var fsRoot = projectRoot.GetChildDirectory("cpp");
                if (fsRoot != null)
                {
                    foreach (var fsproj in fsRoot.Files.Where(
                        name => name.EndsWith(".vcxproj", StringComparison.InvariantCultureIgnoreCase)))
                    {
                        log.Debug("Deleting vxproj file");
                        fsRoot.DeleteFile(fsproj);
                    }

                    foreach (var fsproj in fsRoot.Files.Where(
                                name => name.EndsWith(".vcxproj.user", StringComparison.InvariantCultureIgnoreCase)))
                    {
                        log.Debug("Deleting vcxproj.user file");
                        fsRoot.DeleteFile(fsproj);
                    }

                    var filteredFiles = project.GetSourceSet("cpp").Files.Except(
                        project.GetSourceSet("cpp").FilterCppSourceSet(fsRoot, suite.SuiteRoot).Files);

                    foreach (var filteredFile in filteredFiles)
                    {
                        log.DebugFormat("Deleting generated file {0}", filteredFile);
                        suite.SuiteRoot.DeleteFile(filteredFile);
                    }
                }
            }
        }