ArcGISHealthStatus.HTTPCheck.HTTPChecker.CheckHTTPServices C# (CSharp) Method

CheckHTTPServices() public method

public CheckHTTPServices ( List httpServices ) : List
httpServices List
return List
        public List<ServiceStatus> CheckHTTPServices(List<HTTPService> httpServices)
        {
            var servicesStatus = new List<ServiceStatus>();
            foreach (var httpService in httpServices)
            {
                string status = null;
                string serviceError = null;
                try
                {
                    var serviceResult = HTTPRequest.RequestString(httpService.Url, "GET", null);
                    if (serviceResult.Contains("\"error\""))
                    {
                        status = "OFF";
                        serviceError = serviceResult;
                    }
                    else
                    {
                        status = "ON";
                    }

                }
                catch (Exception e)
                {
                    status = "OFF";
                    serviceError = e.Message;
                }

                var serviceStatus = new ServiceStatus()
                                        {
                                            Name = httpService.Name,
                                            Type = httpService.Type,
                                            Status = status,
                                            Error = serviceError
                                        };
                servicesStatus.Add(serviceStatus);
            }

            return servicesStatus;
        }

Usage Example

        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;
        }