public static IWebHost CheckDependencies(this IWebHost webHost, Func <DependencyCheckerBuilder, DependencyCheckerBuilder> builder)
        {
            using (IServiceScope scope = webHost.Services.CreateScope())
            {
                IServiceProvider services = scope.ServiceProvider;
                IOptions <DependencyCheckerOptions> options = services.GetRequiredService <IOptions <DependencyCheckerOptions> >();
                ILogger <DependencyChecker>         logger  = services.GetRequiredService <ILogger <DependencyChecker> >();

                DependencyCheckerBuilder tmp = builder(new DependencyCheckerBuilder(services, options.Value));

                var checker = tmp.Build();

                checker.WaitForDependencies();

                return(webHost);
            }
        }
 public static DependencyCheckerBuilderStage <CustomDependencyCheck> AddCustom(this DependencyCheckerBuilder ext, Func <Task <bool> > customCheck, string name, TimeSpan timeBeforeFail)
 {
     return(new DependencyCheckerBuilderStage <CustomDependencyCheck>(ext, ext.AddDependencyCheck(new CustomDependencyCheck(customCheck, name, timeBeforeFail))));
 }
 public static DependencyCheckerBuilderStage <CustomDependencyCheck> AddCustom(this DependencyCheckerBuilder ext, Func <Task <bool> > customCheck, string name)
 {
     return(new DependencyCheckerBuilderStage <CustomDependencyCheck>(ext, ext.AddDependencyCheck(new CustomDependencyCheck(customCheck, name, TimeSpan.FromSeconds(ext.Options.CheckTimeout)))));
 }
 public static DependencyCheckerBuilderStage <TcpConnectionDependencyCheck> AddTcpConnection(this DependencyCheckerBuilder ext, IPEndPoint endpoint, string name, TimeSpan timeBeforeFail)
 {
     return(new DependencyCheckerBuilderStage <TcpConnectionDependencyCheck>(ext, ext.AddDependencyCheck(new TcpConnectionDependencyCheck(endpoint, name, timeBeforeFail))));
 }
 public static DependencyCheckerBuilderStage <TcpConnectionDependencyCheck> AddTcpConnection(this DependencyCheckerBuilder ext, IPEndPoint endpoint, string name)
 {
     return(new DependencyCheckerBuilderStage <TcpConnectionDependencyCheck>(ext, ext.AddDependencyCheck(new TcpConnectionDependencyCheck(endpoint, name, TimeSpan.FromSeconds(ext.Options.CheckTimeout)))));
 }
 public static DependencyCheckerBuilderStage <DirectoryExistsDependencyCheck> AddDirectoryExists(this DependencyCheckerBuilder ext, string directoryPath, string name, TimeSpan timeBeforeFail)
 {
     return(new DependencyCheckerBuilderStage <DirectoryExistsDependencyCheck>(ext, ext.AddDependencyCheck(new DirectoryExistsDependencyCheck(directoryPath, name, timeBeforeFail))));
 }
 public static DependencyCheckerBuilderStage <DirectoryExistsDependencyCheck> AddDirectoryExists(this DependencyCheckerBuilder ext, string directoryPath, string name)
 {
     return(new DependencyCheckerBuilderStage <DirectoryExistsDependencyCheck>(ext, ext.AddDependencyCheck(new DirectoryExistsDependencyCheck(directoryPath, name, TimeSpan.FromSeconds(ext.Options.CheckTimeout)))));
 }
 public static DependencyCheckerBuilderStage <FileExistsDependencyCheck> AddFileExists(this DependencyCheckerBuilder ext, string filePath, string name, TimeSpan timeBeforeFail)
 {
     return(new DependencyCheckerBuilderStage <FileExistsDependencyCheck>(ext, ext.AddDependencyCheck(new FileExistsDependencyCheck(filePath, name, timeBeforeFail))));
 }
 public static DependencyCheckerBuilderStage <FileExistsDependencyCheck> AddFileExists(this DependencyCheckerBuilder ext, string filePath, string name)
 {
     return(new DependencyCheckerBuilderStage <FileExistsDependencyCheck>(ext, ext.AddDependencyCheck(new FileExistsDependencyCheck(filePath, name, TimeSpan.FromSeconds(ext.Options.CheckTimeout)))));
 }
 public DependencyCheckerBuilderStage(DependencyCheckerBuilder builder, T check)
 {
     Builder = builder ?? throw new ArgumentNullException(nameof(builder));
     Check   = check ?? throw new ArgumentNullException(nameof(check));
 }