// ReSharper disable InconsistentNaming namespace TeamCity.Docker { using System; using System.Collections.Generic; using System.Threading; using Generic; using global::Docker.DotNet; using IoC; using JetBrains.TeamCity.ServiceMessages.Write; using JetBrains.TeamCity.ServiceMessages.Write.Special; using JetBrains.TeamCity.ServiceMessages.Write.Special.Impl.Updater; using Model; using static IoC.Lifetime; internal class IoCConfiguration: IConfiguration { public IEnumerable Apply(IMutableContainer container) { if (container == null) { throw new ArgumentNullException(nameof(container)); } yield return container .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).Tag("Console").To() .Bind().As(Singleton).Tag("TeamCity").To() .Bind().As(Singleton).To(ctx => new Logger( ctx.Container.Inject(), ctx.Container.Inject(), ctx.Container.Inject("Console"), ctx.Container.Inject("TeamCity"))) .Bind().As(Singleton).To() .Bind().To(ctx => ctx.Container.Inject().Create().Result) .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind().As(Singleton).To() .Bind>, IGraph>>().As(Singleton).To() .Bind().As(Singleton).To() .Bind().Tag("Readme files").As(Singleton).To() // -- Generation of Kotlin DSL via C# had been replaced with reusable build configurations. // .Bind().Tag("Kotlin DSL").As(Singleton).To() .Bind().Tag("Scripts").As(Singleton).To() .Bind, IEnumerable