// Token: 0x06000EB4 RID: 3764 RVA: 0x0003ED7C File Offset: 0x0003CF7C
        public bool IsPaxosConfiguredAndLeaderExist(out string statusInfoStr)
        {
            statusInfoStr = "<null>";
            this.InitializeIfRequired();
            InstanceStatusInfo si = null;

            Utils.RunBestEffort(delegate
            {
                si = this.ClientFactory.LocalClient.GetStatus(null);
            });
            if (si != null)
            {
                statusInfoStr = Utils.SerializeObjectToJsonString <InstanceStatusInfo>(si, false, true);
            }
            return(si != null && si.IsValidLeaderExist());
        }
        private void CheckHealthInternal()
        {
            bool flag  = true;
            bool flag2 = false;
            InstanceStatusInfo instanceStatus = this.GetInstanceStatus();

            if (instanceStatus != null)
            {
                if (instanceStatus.State == InstanceState.Running || instanceStatus.State == InstanceState.Starting)
                {
                    this.firstObservedUnhealthyTime = DateTimeOffset.MinValue;
                    flag = false;
                }
            }
            else if (this.processInfo == null)
            {
                flag2 = true;
            }
            if (flag)
            {
                if (this.firstObservedUnhealthyTime == DateTimeOffset.MinValue)
                {
                    this.firstObservedUnhealthyTime = DateTimeOffset.Now;
                }
                if (DateTimeOffset.Now - this.firstObservedUnhealthyTime >= this.config.Settings.DurationToWaitBeforeRestart)
                {
                    flag2 = true;
                }
                this.manager.EventLogger.Log(DxEventSeverity.Warning, 0, "{0}: Instance is unhealthy. (IsRestartRequired: {1}, FirstUnhealthyTime: {2})", new object[]
                {
                    this.config.Identity,
                    flag2,
                    this.firstObservedUnhealthyTime
                });
            }
            else if (this.config.Settings.IsAllowDynamicReconfig && instanceStatus != null && instanceStatus.IsValidPaxosMembersExist() && instanceStatus.IsValidLeaderExist() && !instanceStatus.AreMembersSame(this.config.Members))
            {
                bool flag4;
                bool flag5;
                bool flag3 = this.ReconfigureBestEffort("Checker.ReconfigureBestEffort", this.config.Members, instanceStatus, out flag4, out flag5);
                if (flag4 && !flag3)
                {
                    flag2 = true;
                }
            }
            if (flag2)
            {
                this.IsRestartRequested = true;
                Task.Factory.StartNew(delegate()
                {
                    this.manager.RestartInstance(this.config.Name, false);
                });
            }
        }