Пример #1
0
        public Result <None> Run()
        {
            var files       = FileUtils.GetAllValuableCsFiles(new DirectoryInfo(PathToSlnFolder)).ToList();
            var progressBar = new FilesCheckingProgressBar(files);

            return(new ResharperCltUpdater()
                   .UpdateIfNeed()
                   .Then(_ => FileUtils.GetPathToSlnFile(PathToSlnFolder))
                   .Then(sln =>
            {
                using var tempDir = new TempDirectory();
                var tempFile = $"{tempDir.PathToTempDirectory}/temp";

                ConsoleHelper.LogInfo("Start code inspection. Please waiting.");

                return new ReSharperClt(rootDirectory)
                .RunInspectCodeTool(sln.FullName, tempFile, progressBar.RegisterFile)
                .Then(_ =>
                {
                    ConsoleHelper.ClearCurrentConsoleLine();
                    ConsoleHelper.LogInfo("Finish file checking");
                })
                .Then(_ => CheckXmlReport(tempFile))
                .Then(_ => ConsoleHelper.LogInfo("All files are clean"))
                .OnFail(error =>
                {
                    if (Interactive)
                    {
                        Cmd.RunProcess("explorer", "code-inspections.html");
                    }
                });
            }));
        }
        public Result <None> Run(FileInfo fileInfo, IReadOnlyCollection <FileInfo> validateFiles)
        {
            if (!validateFiles.Any())
            {
                return(Result.Ok());
            }

            var progressBar = new FilesCheckingProgressBar(validateFiles);

            var relativeFilePaths = validateFiles.Select(file => file.GetRelativePath(fileInfo.Directory));

            return(dotSettingsFileProvider.GetDotSettingsFile(fileInfo)
                   .Then(dsFile => new ReSharperClt(rootDirectory)
                         .RunCleanupTool(fileInfo.FullName, relativeFilePaths, dsFile.GetPath(), progressBar.RegisterFile)));
        }