示例#1
0
        public DSProcessInfo GetDSServiceState()
        {
            DSProcessInfo dsprocessInfo = new DSProcessInfo(base.Acceptor.EndPointAddress.Address.ToString());

            if (base.ID == this.DSBossID)
            {
                Dictionary <string, Dictionary <string, int> > dictionary = new Dictionary <string, Dictionary <string, int> >();
                foreach (KeyValuePair <string, DSWaitingQueue> keyValuePair in this.DSWaitingSystem.QueueDict)
                {
                    Dictionary <string, int> dictionary2 = new Dictionary <string, int>();
                    dictionary2.Add("Wait", keyValuePair.Value.WaitingParties.Count);
                    dictionary2.Add("Play", keyValuePair.Value.Ships.Count);
                    dictionary.Add(keyValuePair.Key, dictionary2);
                }
                dsprocessInfo.SetQueueInfo(dictionary);
            }
            foreach (KeyValuePair <int, DSEntity> keyValuePair2 in this.DSEntities)
            {
                Process process = keyValuePair2.Value.Process;
                if (process != null && !process.HasExited)
                {
                    dsprocessInfo.AddProcessInfo(new Dictionary <string, string>
                    {
                        {
                            "PID",
                            process.Id.ToString()
                        },
                        {
                            "QuestID",
                            keyValuePair2.Value.QuestID
                        },
                        {
                            "DSType",
                            keyValuePair2.Value.DSType.ToString()
                        },
                        {
                            "RunningTime",
                            Math.Round((DateTime.Now - process.StartTime).TotalMinutes, 1) + "Min"
                        },
                        {
                            "IsGiantRaid",
                            keyValuePair2.Value.IsGiantRaid ? "GiantRaid" : "NormalRaid"
                        },
                        {
                            "AllocatedMemory",
                            Math.Round((double)process.PrivateMemorySize64 / 1024.0 / 1024.0, 1) + "MB"
                        },
                        {
                            "UsingMemory",
                            Math.Round((double)process.WorkingSet64 / 1024.0 / 1024.0, 1) + "MB"
                        }
                    });
                }
            }
            return(dsprocessInfo);
        }
示例#2
0
        public override IEnumerable <object> Run()
        {
            base.Finished = true;
            DSProcessInfo statics = this.service.GetDSServiceState();

            yield return(statics.IP);

            yield return(statics.WaitingQueueInfo.Count);

            foreach (KeyValuePair <string, Dictionary <string, int> > queue in statics.WaitingQueueInfo)
            {
                KeyValuePair <string, Dictionary <string, int> > keyValuePair = queue;
                yield return(keyValuePair.Key);

                KeyValuePair <string, Dictionary <string, int> > keyValuePair2 = queue;
                yield return(keyValuePair2.Value.Count);

                KeyValuePair <string, Dictionary <string, int> > keyValuePair3 = queue;
                foreach (KeyValuePair <string, int> info in keyValuePair3.Value)
                {
                    KeyValuePair <string, int> keyValuePair4 = info;
                    yield return(keyValuePair4.Key);

                    KeyValuePair <string, int> keyValuePair5 = info;
                    yield return(keyValuePair5.Value);
                }
            }
            yield return(statics.ProcessList.Count);

            foreach (Dictionary <string, string> proc in statics.ProcessList)
            {
                yield return(proc.Count);

                foreach (KeyValuePair <string, string> prop in proc)
                {
                    KeyValuePair <string, string> keyValuePair6 = prop;
                    yield return(keyValuePair6.Key);

                    KeyValuePair <string, string> keyValuePair7 = prop;
                    yield return(keyValuePair7.Value);
                }
            }
            yield break;
        }