示例#1
0
        public void Present(Optimat.EveOnline.CustomBot.InputSnapshot Presented)
        {
            Int64?            Time      = null;
            string            SourceUri = null;
            bool              ContainsSensorSnapshot        = false;
            int?              SensorProcessId               = null;
            Int64?            SensorMeasurementBeginTime    = null;
            Int64?            SensorMeasurementDurationMili = null;
            VonSensorikMesung SensorMeasurement             = null;

            try
            {
                if (null == Presented)
                {
                    return;
                }

                Time      = Presented.Time;
                SourceUri = Presented.SourceUri;

                var Snapshot = Presented.Snapshot;

                VonProcessMesung <VonSensorikMesung> MemoryMeasurement = null;

                if (null != Snapshot)
                {
                    MemoryMeasurement = Snapshot.MemoryMeasurement;
                }

                if (null != MemoryMeasurement)
                {
                    SensorMeasurement = MemoryMeasurement.Wert;
                }

                if (null != MemoryMeasurement)
                {
                    SensorProcessId               = MemoryMeasurement.ProcessId;
                    SensorMeasurementBeginTime    = MemoryMeasurement.BeginZait;
                    SensorMeasurementDurationMili = MemoryMeasurement.Dauer;
                }

                ContainsSensorSnapshot = null != SensorMeasurement;
            }
            finally
            {
                this.Presented = Presented;

                TimeInspect.Präsentiire(Time);
                TextBoxSourceUriInspect.Text             = SourceUri;
                CheckBoxContainsSensorSnapshot.IsChecked = ContainsSensorSnapshot;

                TextBoxSensorProcessId.Text = SensorProcessId.ToString();
                SensorMeasurementBeginTimeInspect.Präsentiire(SensorMeasurementBeginTime);
                SensorMeasurementDurationMiliInspect.Text = SensorMeasurementDurationMili.ToString();
                SensorMeasurementInspect.Present(SensorMeasurement);
            }
        }
示例#2
0
 MengeAuswertungErgeebnisZuAstMitHerkunftAdrese(
     this    VonSensorikMesung ScnapscusAuswertung,
     Int64 AstHerkunftAdrese)
 {
     return
         (Bib3.RefNezDiferenz.SictRefNezDiferenz.ZuRefNezMengeClrTypeInstanceReferenziirt(
              new object[] { ScnapscusAuswertung },
              Optimat.ScpezEveOnln.SictAutomat.ZuusctandSictDiferenzRictliinieScatescpaicer)
          .OfTypeNullable <GbsElement>()
          .WhereNullable((Kandidaat) => GbsElement.HatBezaicner(Kandidaat, AstHerkunftAdrese)));
 }
示例#3
0
 public void    Present(VonSensorikMesung Presented)
 {
     try
     {
         ViewTree.Präsentiire(new Bib3.WertZuZaitpunktStruct <object>[] { new Bib3.WertZuZaitpunktStruct <object>(Presented, 0) });
     }
     finally
     {
         this.Presented = Presented;
     }
 }
示例#4
0
        static public void SimulatioonApliziire(
            this    VonSensorikMesung VonSensorikScnapscus,
            SictOptimatParamSimu Simulatioon)
        {
            if (null == VonSensorikScnapscus)
            {
                return;
            }

            if (null == Simulatioon)
            {
                return;
            }

            var SimuScnapscus = new VonSensorikMesung();

            SimuScnapscus.SelfShipState = Simulatioon.SelbstShipZuusctand;

            Bib3.RefNezDiferenz.Extension.InRefNezApliziireErsazWoUnglaicDefault(VonSensorikScnapscus, SimuScnapscus);
        }
示例#5
0
        public SictAusGbsScnapscusAuswertungSrv(
            VonSensorikMesung Base)
        {
            Bib3.SictRefNezKopii.KopiireFlacVon(
                this,
                Base,
                RictliinieScatescpaicer);

            ModuleButtonHintInterpretiirt = ModuleButtonHintInterpretiirt.Interpretiire(ModuleButtonHint);

            if (null != WindowOverview)
            {
                var AusWindowOverviewListeZaile = WindowOverview.AusTabListeZaileOrdnetNaacLaage;

                if (null != MengeWindowInventory)
                {
                    this.MengeWindowInventoryVerknüpfungMitOverview =
                        MengeWindowInventory.Select((WindowInventory) =>
                                                    SictWindowInventoryVerknüpfungMitOverview.Ersctele(WindowInventory, AusWindowOverviewListeZaile)).ToArray();
                }
            }
        }
        public void Berecne(VonSensorikMesung AusScnapscusAuswertungZuusctand)
        {
            bool?LocationErfordertDock     = null;
            bool?LocationErraict           = null;
            bool?LocationErraictTailSystem = null;
            bool?LocationSystemGlaicInfoPanelRouteDestinationSystem = null;

            try
            {
                var Objective = this.Objective;

                if (null == Objective)
                {
                    return;
                }

                var ObjectiveLocation = Objective.Location;

                if (null == ObjectiveLocation)
                {
                    return;
                }

                if (null == AusScnapscusAuswertungZuusctand)
                {
                    return;
                }

                var CurrentLocation =
                    (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.CurrentLocationInfo();

                var InfoPanelRoute = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.InfoPanelRoute;

                var InfoPanelRouteCurrent = (null == InfoPanelRoute) ? null : InfoPanelRoute.CurrentInfo;
                var InfoPanelRouteEnd     = (null == InfoPanelRoute) ? null : InfoPanelRoute.EndInfo;

                var Docked = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.Docked();

                LocationErfordertDock =
                    SictMissionObjectiveObjectiveElementTyp.LocationPickUp == Objective.Typ ||
                    SictMissionObjectiveObjectiveElementTyp.LocationDropOff == Objective.Typ;

                var ObjectiveLocationTailSystem = ObjectiveLocation.LocationNameTailSystem;

                var CurrentLocationSolarSystemName = (null == CurrentLocation) ? null : CurrentLocation.SolarSystemName;

                if (null != CurrentLocation)
                {
                    LocationErraictTailSystem =
                        (null == CurrentLocationSolarSystemName)      ?       false   :
                        ((null == ObjectiveLocationTailSystem) ?       (bool?)null     :
                         ObjectiveLocationTailSystem.Contains(CurrentLocationSolarSystemName));

                    LocationErraict =
                        (true == LocationErraictTailSystem) &&
                        string.Equals(ObjectiveLocation.LocationName, CurrentLocation.NearestName) &&
                        ((false == LocationErfordertDock) || (true == Docked));
                }

                if (null == InfoPanelRouteEnd)
                {
                    //	Wen Ziil der Route nur ain Systeem entfernt ist dan scteet Ziil nit in EndInfo sondern in CurrentInfo.

                    if (null == InfoPanelRouteCurrent)
                    {
                        //	Wen auc kain CurrentInfo vorhande dan isc warscainlic noc kaine Route gesezt.
                        LocationSystemGlaicInfoPanelRouteDestinationSystem = false;
                    }
                    else
                    {
                        var SolarSystemName = InfoPanelRouteCurrent.SolarSystemName;

                        if (null != ObjectiveLocationTailSystem &&
                            null != SolarSystemName)
                        {
                            LocationSystemGlaicInfoPanelRouteDestinationSystem =
                                ObjectiveLocationTailSystem.Contains(InfoPanelRouteCurrent.SolarSystemName);
                        }
                    }
                }
                else
                {
                    if (null != ObjectiveLocationTailSystem)
                    {
                        LocationSystemGlaicInfoPanelRouteDestinationSystem =
                            ObjectiveLocationTailSystem.Contains(InfoPanelRouteEnd.SolarSystemName);
                    }
                }
            }
            finally
            {
                this.LocationErfordertDock     = LocationErfordertDock;
                this.LocationErraict           = LocationErraict;
                this.LocationErraictTailSystem = LocationErraictTailSystem;
                this.LocationSystemGlaicInfoPanelRouteDestinationSystem = LocationSystemGlaicInfoPanelRouteDestinationSystem;
            }
        }
示例#7
0
        public void Aktualisiire(
            SictAutomatZuusctand AutomaatZuusctand,
            VonSensorikMesung AusScnapscusAuswertungZuusctand)
        {
            if (null == AutomaatZuusctand)
            {
                return;
            }

            var AgregatioonAusTransitionInfo = this.AgregatioonAusTransitionInfo;

            var ZaitMili = AutomaatZuusctand.NuzerZaitMili;

            var OverviewUndTarget = AutomaatZuusctand.OverviewUndTarget;

            /*
             * 2015.03.12
             *
             * Ersaz durc ToCustomBotSnapshot
             *      var GbsBaum = AutomaatZuusctand.VonNuzerMeldungZuusctandTailGbsBaum;
             * */

            var GbsBaum = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var MengeWindow = this.MengeWindow;
            var ListeAbovemainMessageAuswertMitZait = this.ListeAbovemainMessageAuswertMitZait;

            var ScnapscusWindowOverview = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.WindowOverview;

            var NeocomClockZaitKalenderModuloTaagStringUndMinMax = (null == AusScnapscusAuswertungZuusctand) ? null :
                                                                   AusScnapscusAuswertungZuusctand.NeocomClockZaitKalenderModuloTaagMinMax;

            var ScnapscusWindowOverviewZaileInputFookusExklusiiv = (null == ScnapscusWindowOverview) ? null : ScnapscusWindowOverview.ZaileMitInputFookusExklusiiv();

            var ScnapscusMengeWindow = (null == AusScnapscusAuswertungZuusctand) ? null :
                                       AusScnapscusAuswertungZuusctand.MengeWindowBerecne();

            var ScnapscusMengeWindowSictbar =
                ExtractFromOldAssembly.Bib3.Extension.WhereNullable(ScnapscusMengeWindow, (Kandidaat) => null == Kandidaat ? false : (true == Kandidaat.Sictbar))
                .ToArrayNullable();

            var ScnapscusMengeMenu = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeMenu;

            if (null == AgregatioonAusTransitionInfo)
            {
                this.AgregatioonAusTransitionInfo = AgregatioonAusTransitionInfo = new SictGbsAgregatioonAusTransitionInfo();
            }

            AgregatioonAusTransitionInfo.Agregiire(AutomaatZuusctand);

            if (null == MengeWindow)
            {
                this.MengeWindow = MengeWindow = new List <SictGbsWindowZuusctand>();
            }

            if (NeocomClockZaitKalenderModuloTaagStringUndMinMax.HasValue)
            {
                this.NeocomClockZaitModuloTaagMinMax = NeocomClockZaitKalenderModuloTaagStringUndMinMax.Value;
            }

            var ListeAusGbsAbovemainMessageMitZait = AutomaatZuusctand.ListeAusGbsAbovemainMessageMitZait();

            var ListeAusGbsAbovemainMessageMitZaitLezte =
                (null == ListeAusGbsAbovemainMessageMitZait) ? null : ListeAusGbsAbovemainMessageMitZait.LastOrDefault();

            if (null != AusScnapscusAuswertungZuusctand)
            {
                if (null != AusScnapscusAuswertungZuusctand.InfoPanelLocationInfo)
                {
                    InfoPanelLocationInfoSictbarLezteZaitMili = ZaitMili;
                }

                if (null != AusScnapscusAuswertungZuusctand.InfoPanelRoute)
                {
                    InfoPanelRouteSictbarLezteZaitMili = ZaitMili;
                }

                if (null != AusScnapscusAuswertungZuusctand.InfoPanelMissions)
                {
                    InfoPanelMissionsSictbarLezteZaitMili = ZaitMili;
                }
            }

            SictGbsWindowZuusctand.ZuZaitAingangMengeObjektScnapscus(
                ZaitMili,
                ScnapscusMengeWindowSictbar,
                MengeWindow,
                false,
                AgregatioonAusTransitionInfo);

            {
                //	Window entferne welce zu lange nit meer geöfnet sind.
                MengeWindow.RemoveAll((Kandidaat) => !Kandidaat.InLezteScnapscusSictbar());
            }

            {
                var MengeWindowGrupe = MengeWindow.GroupBy((Kandidaat) => Kandidaat.GbsAstHerkunftAdrese).ToArray();

                if (MengeWindowGrupe.Any((Grupe) => 1 < Grupe.Count()))
                {
                    //	Temp für Debug Verzwaigung
                }
            }

            {
                //	Berecnung	ListeAbovemainMessageAuswertMitZait

                if (null != ListeAusGbsAbovemainMessageMitZaitLezte)
                {
                    var ListeAusGbsAbovemainMessageLezte = ListeAusGbsAbovemainMessageMitZaitLezte.Wert;

                    var ListeAusGbsAbovemainMessageLezteText = ListeAusGbsAbovemainMessageLezte.LabelText;

                    if (null != ListeAusGbsAbovemainMessageLezteText)
                    {
                        if (null != ListeAusGbsAbovemainMessageLezte)
                        {
                            if (null == ListeAbovemainMessageAuswertMitZait)
                            {
                                this.ListeAbovemainMessageAuswertMitZait = ListeAbovemainMessageAuswertMitZait =
                                    new List <SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> >();
                            }

                            SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> AbovemainMessageAuswertMitZait =
                                ListeAbovemainMessageAuswertMitZait
                                .LastOrDefault((Kandidaat) => Kandidaat.BeginZait == ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait);

                            if (null == AbovemainMessageAuswertMitZait)
                            {
                                var AbovemainMessageAuswert = new SictMessageStringAuswert(ListeAusGbsAbovemainMessageLezteText);

                                AbovemainMessageAuswertMitZait = new SictVerlaufBeginUndEndeRef <SictMessageStringAuswert>(
                                    ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait,
                                    ListeAusGbsAbovemainMessageMitZaitLezte.EndeZait,
                                    AbovemainMessageAuswert);

                                AbovemainMessageAuswert.Berecne();

                                ListeAbovemainMessageAuswertMitZait.Add(AbovemainMessageAuswertMitZait);

                                if (AbovemainMessageAuswert.ClusterShutdownZaitDistanz.HasValue)
                                {
                                    AbovemainMessageClusterShutdownLezte = AbovemainMessageAuswertMitZait;
                                }
                            }
                        }
                    }
                }
            }

            ListeAbovemainMessageDronesLezteAuswertMitZait =
                ListeAbovemainMessageAuswertMitZait
                .LastOrDefaultNullable((Kandidaat) =>
                                       null == Kandidaat.Wert ? false :
                                       (Kandidaat.Wert.DroneBandwithAvailableMili.HasValue ||
                                        Kandidaat.Wert.DroneCommandRange.HasValue ||
                                        Kandidaat.Wert.DroneControlCountScrankeMax.HasValue));

            ListeAbovemainMessageDronesLezteAlter =
                ZaitMili - (null == ListeAbovemainMessageDronesLezteAuswertMitZait ? (Int64?)null : (ListeAbovemainMessageDronesLezteAuswertMitZait.EndeZait ?? ZaitMili));

            if (null != ListeAbovemainMessageAuswertMitZait)
            {
                foreach (var AbovemainMessageAuswertMitZait in ListeAbovemainMessageAuswertMitZait.Reversed().Take(4))
                {
                    if (AbovemainMessageAuswertMitZait.EndeZait.HasValue)
                    {
                        continue;
                    }

                    var AbovemainMessageMitZait =
                        ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(
                            ListeAusGbsAbovemainMessageMitZait,
                            (Kandidaat) => Kandidaat.BeginZait == AbovemainMessageAuswertMitZait.BeginZait);

                    if (null == AbovemainMessageMitZait)
                    {
                        AbovemainMessageAuswertMitZait.EndeZait = ZaitMili;
                    }
                    else
                    {
                        AbovemainMessageAuswertMitZait.EndeZait = AbovemainMessageMitZait.EndeZait;
                    }
                }

                {
                    //	Naacricte welce älter sind als Viir minuute entferne

                    var ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke = ZaitMili - 1000 * 60 * 4;

                    ListeAbovemainMessageAuswertMitZait
                    .RemoveAll((Kandidaat) => Kandidaat.BeginZait < ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke);
                }
            }

            {
                //	Berecnung ListeGbsMenu

                //	Menge Menu werd geordnet für den Fal das in aine Scnapscus meerere Menu auftauce
                //	2014.02.27	Beobactung: lezte Menu erhält 0=InGbsZIndex -> noieste isc am waiteste vorne (okludiirt andere)

                var ScnapscusListeMenu =
                    (null == ScnapscusMengeMenu) ? null :
                    ScnapscusMengeMenu

                    /*
                     * 2015.09.01
                     * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value.
                     *
                     * .OrderByDescending((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1)
                     */
                    .OrderBy((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1)
                    .ToArray();

                var ScnapscusListeMenuFrüüheste =
                    ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(ScnapscusListeMenu);

                var ScnapscusListeMenuFrüühesteListeEntry =
                    (null == ScnapscusListeMenuFrüüheste) ? null :
                    ScnapscusListeMenuFrüüheste.ListeEntry;

                var MenuKaskaadeLezte = ExtractFromOldAssembly.Bib3.Extension.LastOrDefaultNullable(ListeMenuKaskaade);

                if (null == ScnapscusListeMenuFrüühesteListeEntry)
                {
                    if (null != MenuKaskaadeLezte)
                    {
                        MenuKaskaadeLezte.AingangScnapscusLeer(ZaitMili);
                    }

                    MenuKaskaadeLezte = null;
                }
                else
                {
                    GbsElement MenuWurzelAnnaameInitiaal = null;

                    var MengeAufgaabeZuusctand = AutomaatZuusctand.MengeAufgaabeZuusctand;

                    var ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame =
                        AutomaatZuusctand.ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame
                        .ToArrayNullable();

                    if (null != ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame)
                    {
                        foreach (var ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame in ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame)
                        {
                            if (null == ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key)
                            {
                                continue;
                            }

                            foreach (var AufgaabeAst in ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key)
                            {
                                var AufgaabeAstAufgaabeParam = AufgaabeAst.AufgaabeParam as AufgaabeParamAndere;

                                if (null == AufgaabeAstAufgaabeParam)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt = AufgaabeAstAufgaabeParam.MenuWurzelGbsObjekt;

                                if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar = (Int64?)AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.Ident;

                                if (!AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.HasValue)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent = AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.Value;

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.InGbsFläce;

                                if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce)
                                {
                                    continue;
                                }

                                var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung =
                                    AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce.Vergröösert(40, 10);

                                var ScnapscusAufgaabeMenuWurzelTarget      = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as ShipUiTarget;
                                var ScnapscusAufgaabeMenuWurzelOverviewRow =
                                    (GbsElement)(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as VonSensor.OverviewZaile);

                                bool AnnaameMenuPasendZuAusAufgaabeMenuWurzel = true;

                                var ScnapscusLezteMenuWurzelGbsObjektTarget =
                                    AusScnapscusAuswertungZuusctand.TargetEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt);

                                var ScnapscusLezteMenuWurzelGbsObjektOverviewRow = (null == ScnapscusWindowOverview) ? null :
                                                                                   ScnapscusWindowOverview.OverviewRowEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt);

                                {
                                    /*
                                     * 2014.04.22	Beobactung Probleem:
                                     * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte.
                                     * In Folge werd der falsce Cargo Container Abandoned.
                                     *
                                     * Daher Ainfüürung zuusäzlice Bedingung:
                                     * Menu früheste Fläce mus überscnaide mit MenuWurzelGbsObjektAbbild.Fläce
                                     * */

                                    //	Bedingung: Fläce von ScnapscusAufgaabeMenuWurzelTarget und Menu müsen sic scnaide

                                    if (OrtogoonInt.Scnitfläce(
                                            AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung,
                                            ScnapscusListeMenuFrüüheste.InGbsFläce).IsLeer)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                }

                                {
                                    /*
                                     * 2014.04.22	Beobactung Probleem:
                                     * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte.
                                     * In Folge werd der falsce Cargo Container Abandoned.
                                     *
                                     * Daher 2014.04.29 Ainfüürung zuusäzlice Bedingung:
                                     * Fals MenuWurzelGbsObjekt in aine Window enthalte isc mus diises das vorderste Window sain.
                                     * */

                                    if (null == GbsBaum ||
                                        null == MengeWindow)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        SictGbsWindowZuusctand MenuWurzelGbsObjektWindow = null;

                                        foreach (var KandidaatGbsWindow in MengeWindow)
                                        {
                                            var GbsWindowHerkunftAdrese = KandidaatGbsWindow.GbsAstHerkunftAdrese;

                                            if (!GbsWindowHerkunftAdrese.HasValue)
                                            {
                                                continue;
                                            }

                                            var GbsWindowAst = GbsBaum.SuuceFlacMengeGbsAstFrühesteMitIdent(GbsWindowHerkunftAdrese.Value);

                                            if (null == GbsWindowAst)
                                            {
                                                continue;
                                            }

                                            if (null != GbsWindowAst.SuuceFlacMengeGbsAstFrühesteMitIdent(AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent))
                                            {
                                                MenuWurzelGbsObjektWindow = KandidaatGbsWindow;
                                            }
                                        }

                                        if (null != MenuWurzelGbsObjektWindow)
                                        {
                                            /*
                                             * 2015.09.01
                                             * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value.
                                             *                                              if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex < (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue)))
                                             */
                                            if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex > (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue)))
                                            {
                                                //	Ain anderes Window befindet sic waiter vorne als das Window welces MenuWurzelGbsObjekt enthalt.
                                                AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                            }
                                        }
                                    }
                                }

                                if (null != ScnapscusAufgaabeMenuWurzelTarget)
                                {
                                    if (null == ScnapscusLezteMenuWurzelGbsObjektTarget)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        if (null == ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce ||
                                            null == ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce)
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                        else
                                        {
                                            var BeweegungSctreke =
                                                ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce.ZentrumLaage -
                                                ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce.ZentrumLaage;

                                            if (!(BeweegungSctreke.Betraag < 4))
                                            {
                                                //	Target solte zwisce deen zwai Scnapscus nit beweegt haabe.
                                                AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                            }
                                        }

                                        var KandidaatMenuEntryIndikatorTarget = ScnapscusListeMenuFrüühesteListeEntry.MenuEntryTargetUnLock();

                                        if (null == KandidaatMenuEntryIndikatorTarget)
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                    }
                                }

                                if (null != ScnapscusAufgaabeMenuWurzelOverviewRow)
                                {
                                    if (null == ScnapscusLezteMenuWurzelGbsObjektOverviewRow)
                                    {
                                        AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                    }
                                    else
                                    {
                                        if (!(ObjektMitIdentInt64.Identisc(ScnapscusLezteMenuWurzelGbsObjektOverviewRow, ScnapscusWindowOverviewZaileInputFookusExklusiiv)))
                                        {
                                            AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false;
                                        }
                                    }
                                }

                                if (!AnnaameMenuPasendZuAusAufgaabeMenuWurzel)
                                {
                                    continue;
                                }

                                MenuWurzelAnnaameInitiaal = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt;
                            }
                        }
                    }

                    Action MenuKaskaadeKonstrukt = delegate()
                    {
                        MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(
                            ZaitMili,
                            ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame,
                            MenuWurzelAnnaameInitiaal,
                            ScnapscusListeMenu);
                        ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                    };

                    if (null == MenuKaskaadeLezte)
                    {
                        /*
                         * 2015.01.16
                         *
                         * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu);
                         * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                         * */
                        MenuKaskaadeKonstrukt();
                    }
                    else
                    {
                        if (!MenuKaskaadeLezte.AingangScnapscus(ZaitMili, ScnapscusListeMenu))
                        {
                            /*
                             * 2015.01.16
                             *
                             * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu);
                             * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte);
                             * */
                            MenuKaskaadeKonstrukt();
                        }
                    }
                }

                ListeMenuKaskaade.ListeKürzeBegin(30);

                var ListeMenu =
                    (null == MenuKaskaadeLezte) ? null :
                    MenuKaskaadeLezte.ListeMenu;

                var AusButtonListSurroundingsMenu =
                    ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(
                        ListeMenu, ButtonListSurroundingsMenuPrädikaatTailSctaatisc);

                if (null != AusButtonListSurroundingsMenu)
                {
                    if (1 < AusButtonListSurroundingsMenu.ListeScnapscusZuZaitAingangBisherAnzaal)
                    {
                        //	Übernaame ersct bai meer als ain Scnapscus da eventuel in früühescte Scnapscus noc nit ale Entry enthalte
                        AusButtonListSurroundingsMenuLezteMitBeginZait = AusButtonListSurroundingsMenu.SictWertMitZaitBerecneFürBeginZait <SictGbsMenuZuusctand>();
                    }
                }
            }
        }