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