private void OnPingCompleted(OperationalInstance instance)
 {
     if (StatusChanged != null)
     {
         StatusChanged(this, EventArgs.Empty);
     }
 }
        public void RefreshInstances(bool forcePing)
        {
            ICollection <string> names = null;

            names = OperationalInterface.ObjectDirectory.GetNames();

            bool didChange = false;

            foreach (string name in names)
            {
                if (name.StartsWith(OperationalUIFacade.ServiceName))
                {
                    OperationalInstance instance = instances.Find(delegate(OperationalInstance inst) {
                        return(inst.name == name);
                    });

                    if (instance != null)
                    {
                        try {
                            if (!instance.IsSameUri())
                            {
                                instance.responseStatus = ResponseStatus.Unknown;
                                instance.StartPing();
                                didChange = true;
                            }
                            else if (forcePing)
                            {
                                instance.StartPing();
                            }
                        }
                        catch (Exception) {
                        }
                    }
                    else
                    {
                        // new item
                        didChange = true;
                        instance  = new OperationalInstance(name, this);
                        instance.StartPing();
                        instances.Add(instance);
                    }
                }
            }

            if (didChange && StatusChanged != null)
            {
                StatusChanged(this, EventArgs.Empty);
            }
        }
        public void RefreshInstances(bool forcePing)
        {
            ICollection<string> names = null;

            names = OperationalInterface.ObjectDirectory.GetNames();

            bool didChange = false;

            foreach (string name in names) {
                if (name.StartsWith(OperationalUIFacade.ServiceName)) {
                    OperationalInstance instance = instances.Find(delegate(OperationalInstance inst) {
                        return inst.name == name;
                    });

                    if (instance != null) {
                        try {
                            if (!instance.IsSameUri()) {
                                instance.responseStatus = ResponseStatus.Unknown;
                                instance.StartPing();
                                didChange = true;
                            }
                            else if (forcePing) {
                                instance.StartPing();
                            }
                        }
                        catch (Exception) {
                        }
                    }
                    else {
                        // new item
                        didChange = true;
                        instance = new OperationalInstance(name, this);
                        instance.StartPing();
                        instances.Add(instance);
                    }
                }
            }

            if (didChange && StatusChanged != null) {
                StatusChanged(this, EventArgs.Empty);
            }
        }
 private void OnPingCompleted(OperationalInstance instance)
 {
     if (StatusChanged != null) {
         StatusChanged(this, EventArgs.Empty);
     }
 }