示例#1
0
        void OnInstanceUpdated(MemCacheDManager.Business.Server server, MemCacheDManager.Business.Instance instance, MemCacheDManager.Business.InstanceStatistics instanceStatistics)
        {
            Business.InstanceStatistics targetStatistics = _instanceStatistics.Find(new Predicate <MemCacheDManager.Business.InstanceStatistics>(delegate(MemCacheDManager.Business.InstanceStatistics testValue)
            {
                return(testValue.Instance == instance);
            }));

            if (targetStatistics != null)
            {
                _instanceStatistics[_instanceStatistics.IndexOf(targetStatistics)] = instanceStatistics;
            }
            else
            {
                _instanceStatistics.Add(instanceStatistics);
            }

            if (this.InvokeRequired == true)
            {
                if (_isFormClosing == false)
                {
                    this.Invoke(new UpdateInstanceStatisticsDelegate(delegate(List <Business.InstanceStatistics> updateStatistics)
                    {
                        UpdateInstanceStatistics(updateStatistics);
                    }), new object[] { _instanceStatistics });
                }
            }
            else
            {
                UpdateInstanceStatistics(_instanceStatistics);
            }
        }
示例#2
0
        // This is a seperate method so that it can be called via invoke and non-invoke methods.
        private void UpdateInstanceStatistics(List <Business.InstanceStatistics> updateStatistics)
        {
            string memcachedBinaryVersion = null;

            if (File.Exists(Configuration.Default.MemcachedBinarySource) == true)
            {
                memcachedBinaryVersion = FileVersionInfo.GetVersionInfo(Configuration.Default.MemcachedBinarySource).FileVersion;
            }

            BindingSource bs = new BindingSource();

            bs.DataSource        = updateStatistics;
            dgvStatus.DataSource = bs;

            foreach (TreeNode serverNode in tvManager.Nodes)
            {
                if (serverNode.Nodes.Count > 0)
                {
                    Business.StatusIconIndex serverNodeIconIndex = Business.StatusIconIndex.Up;
                    string serverNodeTooltip = Constants.TooltipUp;

                    foreach (TreeNode instanceNode in serverNode.Nodes)
                    {
                        Business.StatusIconIndex instanceNodeIconIndex = Business.StatusIconIndex.Up;
                        string instanceNodeTooltip = Constants.TooltipUp;

                        Business.InstanceStatistics targetStatistics = updateStatistics.Find(new Predicate <MemCacheDManager.Business.InstanceStatistics>(delegate(Business.InstanceStatistics compareStatistics)
                        {
                            return(compareStatistics.Instance == (Business.Instance)instanceNode.Tag);
                        }));


                        if (targetStatistics != null)
                        {
                            instanceNodeIconIndex = targetStatistics.StatusIconIndex;
                            instanceNodeTooltip   = targetStatistics.StatusTooltip;
                        }



                        if (instanceNodeIconIndex == Business.StatusIconIndex.NeedsUpdate && serverNodeIconIndex == Business.StatusIconIndex.Up)
                        {
                            serverNodeIconIndex = instanceNodeIconIndex;
                            serverNodeTooltip   = instanceNodeTooltip;
                        }

                        if (instanceNodeIconIndex == Business.StatusIconIndex.ServiceDown &&
                            (serverNodeIconIndex == Business.StatusIconIndex.Up ||
                             serverNodeIconIndex == Business.StatusIconIndex.NeedsUpdate))
                        {
                            serverNodeIconIndex = instanceNodeIconIndex;
                            serverNodeTooltip   = instanceNodeTooltip;
                        }

                        if (instanceNodeIconIndex == Business.StatusIconIndex.CommunicationError &&
                            (serverNodeIconIndex == Business.StatusIconIndex.Up ||
                             serverNodeIconIndex == Business.StatusIconIndex.NeedsUpdate ||
                             serverNodeIconIndex == Business.StatusIconIndex.ServiceDown))
                        {
                            serverNodeIconIndex = instanceNodeIconIndex;
                            serverNodeTooltip   = instanceNodeTooltip;
                        }

                        if (instanceNodeIconIndex == Business.StatusIconIndex.ServiceNonControllable &&
                            (serverNodeIconIndex == Business.StatusIconIndex.Up ||
                             serverNodeIconIndex == Business.StatusIconIndex.NeedsUpdate ||
                             serverNodeIconIndex == Business.StatusIconIndex.ServiceDown ||
                             serverNodeIconIndex == Business.StatusIconIndex.CommunicationError))
                        {
                            serverNodeIconIndex = instanceNodeIconIndex;
                            serverNodeTooltip   = instanceNodeTooltip;
                        }

                        instanceNode.ImageIndex         = (int)instanceNodeIconIndex;
                        instanceNode.SelectedImageIndex = (int)instanceNodeIconIndex;
                        instanceNode.ToolTipText        = instanceNodeTooltip;
                    }

                    serverNode.ImageIndex         = (int)serverNodeIconIndex;
                    serverNode.SelectedImageIndex = (int)serverNodeIconIndex;
                    serverNode.ToolTipText        = serverNodeTooltip;
                }
                else
                {
                    serverNode.ImageIndex         = (int)Business.StatusIconIndex.Empty;
                    serverNode.SelectedImageIndex = (int)Business.StatusIconIndex.Empty;
                    serverNode.ToolTipText        = Constants.TooltipEmpty;
                }
            }
        }