protected override string Schedule => "*/1 * * * *"; // every minute public override async Task ProcessInScope(IServiceProvider serviceProvider) { Models.ServerManager manager = serviceProvider.GetService(typeof(Models.ServerManager)) as Models.ServerManager; NetworkUtility network = serviceProvider.GetService(typeof(NetworkUtility)) as NetworkUtility; foreach (Server server in manager.Servers) { var reachable = await network.IsReachable(server.IP); if (reachable) { server.Online = true; } else { server.Online = false; } } await manager.SaveChangesAsync(); }
public ServerController(Models.ServerManager context, NetworkUtility network) { this.context = context; this.network = network; }