internal void HandleUninitializedToPreclientPhaseTransition(ILeagueSession session, LeagueSessionPhaseChangedArgs e)
        {
            logger.Info("Handling Uninitialized to Preclient Phase Transition!");
            var modifications = modificationLoader.EnumerateModifications();

            foreach (var modification in modifications)
            {
                var resolutionChain = resolutionChainsByModificationName.GetOrAdd(
                    modification.RepositoryName,
                    add => new CompletionChain(cancellationToken => leagueBuildUtilities.ResolveModification(modification, cancellationToken))
                    );
                var compilationChain = compilationChainsByModificationName.GetOrAdd(
                    modification.RepositoryName,
                    add => new CompletionChain(cancellationToken => leagueBuildUtilities.CompileModification(modification, cancellationToken))
                    );

                var resolutionLink  = resolutionChain.CreateLink("resolution_" + DateTime.Now.ToFileTimeUtc());
                var compilationLink = compilationChain.CreateLink("compilation_" + DateTime.Now.ToFileTimeUtc());
                resolutionLink.Tail(compilationLink.StartAndWaitForChain);
                resolutionChain.StartNext(resolutionLink);
            }
            radsService.Suspend();
        }
 public string EnumerateModifications()
 {
     return(modificationLoader.EnumerateModifications().Select(mod => mod.RepositoryName + " " + mod.RepositoryPath).Join("\r\n"));
 }