protected override async Task <Dictionary <string, SlnFile> > ProcessImpl(Task <Solution> previousTask)
        {
            var slnObject = await previousTask;

            Contract.Assert(slnObject is Solution s && s != null,
                            $"Expected previous task to return a Solution object, but found {slnObject} instead.");
            var solution = (Solution)slnObject;

            return(SolutionAnalyzer.AllSolutionFiles(solution, _workingDirectory));
        }