ZuStationMengeAgentMitMissionInfoLezteBerecne( SictAgentIdentSystemStationName StationIdent, Int64?GültigkaitZaitScrankeMin = null) { if (null == StationIdent) { return(null); } var MengeMission = this.MengeMission; var MengeZuStationMengeAgent = this.MengeZuStationMengeAgent; var MengeZuAgentMissionInfoLezte = this.MengeZuAgentMissionInfoLezte; if (null == MengeZuStationMengeAgent) { return(null); } var ZuStationMengeAgent = Optimat.Glob.TAD(MengeZuStationMengeAgent, StationIdent); if (null == ZuStationMengeAgent) { return(null); } var MengeAgentMitMissionInfoLezte = new Dictionary <VonSensor.LobbyAgentEntry, SictMissionZuusctand>(); foreach (var ZuZaitAgentEntry in ZuStationMengeAgent.Values) { if (ZuZaitAgentEntry.Zait < GültigkaitZaitScrankeMin) { continue; } var AgentEntry = ZuZaitAgentEntry.Wert; SictMissionZuusctand ZuAgentEntryMissionBerüksictigt = null; try { // Lezte Mission zu gewäälte AgentEntry suuce var MengeKandidaatMissionMitZait = new List <SictWertMitZait <SictMissionZuusctand> >(); if (null != MengeMission) { foreach (var KandidaatMission in MengeMission) { if (null == KandidaatMission) { continue; } if (!AgentEntryPasendZuMission(AgentEntry, KandidaatMission)) { continue; } var ZuAgentEntryMissionInfoLezte = KandidaatMission.MissionInfoZuZaitLezteBerecne(); if (null == ZuAgentEntryMissionInfoLezte.Wert) { continue; } if (ZuAgentEntryMissionInfoLezte.Zait < GültigkaitZaitScrankeMin) { continue; } MengeKandidaatMissionMitZait.Add(new SictWertMitZait <SictMissionZuusctand>(ZuAgentEntryMissionInfoLezte.Zait, KandidaatMission)); } } ZuAgentEntryMissionBerüksictigt = MengeKandidaatMissionMitZait .OrderBy((KandidaatMissionMitZait) => KandidaatMissionMitZait.Zait).LastOrDefault().Wert; } finally { MengeAgentMitMissionInfoLezte[AgentEntry] = ZuAgentEntryMissionBerüksictigt; } } return(MengeAgentMitMissionInfoLezte); }
public int?ZuStationMengeAgentPasendOoneMissionUnpasendAnzaalBerecne( SictAgentIdentSystemStationName StationIdent, SictOptimatParamMission OptimatParamMission, Int64?GültigkaitZaitScrankeMin = null) { if (null == StationIdent) { return(0); } if (null == OptimatParamMission) { return(0); } var StationMengeAgentMitMission = ZuStationMengeAgentMitMissionInfoLezteBerecne(StationIdent, GültigkaitZaitScrankeMin); if (null == StationMengeAgentMitMission) { return(null); } if (StationMengeAgentMitMission.Count < 1) { return(null); } int ZuStationMengeAgentPasendOoneMissionUnpasendAnzaal = 0; foreach (var AgentMitMission in StationMengeAgentMitMission) { var AgentEntry = AgentMitMission.Key; if (null == AgentEntry) { continue; } var AgentLevelNulbar = AgentEntry.AgentLevel; if (!AgentLevelNulbar.HasValue) { continue; } var AgentLevel = AgentLevelNulbar.Value; if (!OptimatParamMission.AktioonFüüreAusFraigaabeFürAgentLevel(AgentLevel)) { continue; } var Mission = AgentMitMission.Value; if (null != Mission) { var MissionTailFürNuzer = Mission.TailFürNuzer; var ZuMissionVerhalte = MissionTailFürNuzer.AusPräferenzEntscaidungVerhalte; if (null == ZuMissionVerhalte) { continue; } if (!(true == ZuMissionVerhalte.AktioonAcceptAktiiv)) { continue; } } ++ZuStationMengeAgentPasendOoneMissionUnpasendAnzaal; } return(ZuStationMengeAgentPasendOoneMissionUnpasendAnzaal); }