public static AppStatus GetStatusBasedOnHealthChecks(string appID, string IPAddress)
        {
            AppStatus AggregatedStatus   = AppStatus.Up;
            string    failedMessagesJson = string.Empty;
            List <SelfHealthMessage> unHealthyMessages = HealthMessageLogic.GetFailedChecks(appID, IPAddress);

            //Step 1: Get Aggregate Status of AppID depeding on status of related health messages
            if (unHealthyMessages != null && unHealthyMessages.Count > 0)
            {
                var failedMessages = unHealthyMessages.Where(x => x.OverallStatus == Contracts.CheckResultStatus.Down || x.OverallStatus == Contracts.CheckResultStatus.Unknown);
                if (failedMessages != null && failedMessages.Count() > 0)
                {
                    AggregatedStatus = AppStatus.Down;
                }
                else
                {
                    AggregatedStatus = AppStatus.PerformanceDegraded;
                }
                //failedMessagesJson = JsonConvert.SerializeObject(unHealthyMessages);
            }
            return(AggregatedStatus);
        }
        public void LoadAllApplications()
        {
            List <Component> components = ComponentLogic.GetAllComponents();

            foreach (var component  in components)
            {
                List <AppStatus> replicaAppStatus = null;
                List <string>    subComponentIPs  = new HealthMessageLogic().GetIPAddressesForApp(component.AppID);
                var data = JsonConvert.SerializeObject(component);
                if (subComponentIPs == null || subComponentIPs.Count() == 0)
                {
                    Clients.All.loadAllApllications(data, null, null);
                    continue;
                }

                Trace.TraceInformation("About to Get Status based on Replica apps");
                replicaAppStatus = HealthMessageUtility.GetStatusBasedOnReplicas(component, subComponentIPs);
                Trace.TraceInformation("Replica App Status Done ");

                //string data = JsonConvert.SerializeObject(component);
                Clients.All.loadAllApllications(data, JsonConvert.SerializeObject(subComponentIPs), replicaAppStatus);
            }
        }