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); }
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; }