BoxedIce.ServerDensity.Agent.Checks.ExtendedMongoDBCheck.FillReplicaSetStatistics C# (CSharp) Метод

FillReplicaSetStatistics() приватный Метод

private FillReplicaSetStatistics ( object>.IDictionary status ) : void
status object>.IDictionary
Результат void
        private void FillReplicaSetStatistics(IDictionary<string, object> status)
        {
            MongoDatabase database = _mongoServer["admin"];
            CommandResult result = database.RunCommand("isMaster");
            BsonDocument isMasterOutput = result.Response;
            IDictionary<string, object> replSet = new Dictionary<string, object>();
            status.Add("replSet", replSet);

            replSet.Add("setName", isMasterOutput["setName"]);
            replSet.Add("isMaster", isMasterOutput["ismaster"]);
            replSet.Add("isSecondary", isMasterOutput["secondary"]);

            if (isMasterOutput.Contains("arbiterOnly"))
            {
                replSet.Add("isArbiter", isMasterOutput["arbiterOnly"]);
            }

            database = _mongoServer["admin"];
            result = database.RunCommand("replSetGetStatus");
            BsonDocument replSetOutput = result.Response;

            replSet.Add("myState", replSetOutput["myState"]);
            IDictionary<string, object> members = new Dictionary<string, object>();
            replSet.Add("members", members);

            foreach (BsonDocument memberOutput in replSetOutput["members"] as BsonArray)
            {
                IDictionary<string, object> member = new Dictionary<string, object>();
                members.Add(memberOutput["_id"].ToString(), member);

                member.Add("name", memberOutput["name"]);
                member.Add("state", memberOutput["state"]);

                if (memberOutput.Contains("optimeDate"))
                {
                    TimeSpan delta = DateTime.UtcNow - (DateTime)memberOutput["optimeDate"];
                    member.Add("optimeDate", (int)delta.TotalSeconds);
                }

                if (memberOutput.Contains("self"))
                {
                    replSet.Add("myId", memberOutput["_id"].ToString());
                }
                else
                {
                    if (memberOutput.Contains("lastHeartbeat"))
                    {
                        TimeSpan delta = DateTime.UtcNow - (DateTime)memberOutput["lastHeartbeat"];
                        member.Add("lastHeartbeat", (int)delta.TotalSeconds);
                    }
                }

                if (memberOutput.Contains("errmsg"))
                {
                    member.Add("error", memberOutput["errmsg"]);
                }
            }
        }