public List<GroupStatus> CheckSystem()
{
var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ArcGISHealthChecker.config");
var healthConfig = ConfigurationReader.DeserializeFromXML(fileName);
var httpChecker = new HTTPChecker();
var tcpChecker = new TCPCheck.TCPChecker();
var groupStatuses = new List<GroupStatus>();
foreach (var group in healthConfig.Groups)
{
var groupStatus = new GroupStatus();
groupStatus.Name = group.Name;
groupStatus.ServicesStatus.AddRange(httpChecker.CheckHTTPServices(group.HTTPServices));
groupStatus.ServicesStatus.AddRange(tcpChecker.CheckTCPServices(group.TCPServices));
groupStatus.Status = groupStatus.ServicesStatus.Any(s => s.Status != "ON") ? "OFF" : "ON";
groupStatuses.Add(groupStatus);
}
return groupStatuses;
}