public static void AnalyzeSolution(string solutionPath, RunChecks checker, AnalysisStrategyKind strategy = AnalysisStrategyKind.NONE)
        {
            Environment.SetEnvironmentVariable("MyIPAddr", "127.0.0.1");

            var solAnalyzer = SolutionAnalyzer.CreateFromSolution(GrainClient, solutionPath, AnalysisRootKind.MainMethods);
            var callgraph   = solAnalyzer.Analyze(strategy);

            if (strategy == AnalysisStrategyKind.ONDEMAND_ORLEANS)
            {
                var myStatsGrain = StatsHelper.GetStatGrain(GrainClient);
                myStatsGrain.ResetStats().Wait();
            }

            checker(solAnalyzer, callgraph);
        }
        public static void AnalyzeExample(string source, RunChecks initialChecker, Action <SolutionAnalyzer> updates, RunChecks updatesChecker, AnalysisStrategyKind strategy = AnalysisStrategyKind.NONE)
        {
            Environment.SetEnvironmentVariable("MyIPAddr", "127.0.0.1");
            //var solution = ReachingTypeAnalysis.Utils.CreateSolution(source);
            //var solAnalyzer = new SolutionAnalyzer(solution);
            var solAnalyzer = SolutionAnalyzer.CreateFromSource(GrainClient, source, AnalysisRootKind.MainMethods);
            var callgraph   = solAnalyzer.Analyze(strategy);

            if (strategy == AnalysisStrategyKind.ONDEMAND_ORLEANS)
            {
                var myStatsGrain = StatsHelper.GetStatGrain(GrainClient);
                myStatsGrain.ResetStats().Wait();
            }

            initialChecker(solAnalyzer, callgraph);
            updates(solAnalyzer);
            callgraph = solAnalyzer.GenerateCallGraphAsync().Result;
            updatesChecker(solAnalyzer, callgraph);
        }