public void SendChildStatusMessageToParentApps(string appId, string status)
        {
            Component component = ComponentLogic.GetByAppId(appId);

            if (component != null)
            {
                var parentComponents = ComponentLogic.GetParentComponents(component);
                if (parentComponents != null && parentComponents.Count > 0)
                {
                    foreach (var parent in parentComponents)
                    {
                        AppStatus AggregatedStatus = AppStatus.Up;
                        if (status == "Down" || parent.HeartBeatStatus == HeartBeatStatus.Down)
                        {
                            AggregatedStatus = AppStatus.Down;
                        }
                        else
                        {
                            //check through health message status and other children component messages to determine final status
                            //what of if the parent app is down, not sending heart beats this check would then not be sufficient
                            var checkStatus = HealthMessageUtility.GetStatusBasedOnHealthChecks(parent.AppID);
                            var appStatus   = HealthMessageUtility.GetStatusBasedOnChildrenApps(parent);
                            // AggregatedStatus = HealthMessageUtility.ReturnAggregateStatus(checkStatus, appStatus);
                        }
                        //Update the Status of the Application in the database
                        parent.Status     = AggregatedStatus;
                        parent.LastUpdate = DateTime.Now;
                        ComponentLogic.EditEntity(parent);
                        Clients.All.reportAppStatus(parent.AppID, AggregatedStatus.ToString());
                    }
                }
            }
        }
        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);
            }
        }