示例#1
0
        virtual public void Berecne()
        {
            if (null == PanelGroupAst)
            {
                return;
            }

            if (!(true == PanelGroupAst.VisibleIncludingInheritance))
            {
                return;
            }

            var ContainerMengeEntryName = this.ContainerMengeEntryName;

            ContainerMengeEntryAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    PanelGroupAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals(ContainerMengeEntryName, Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            var Ergeebnis = new PanelGroup(PanelGroupAst.AlsContainer());

            this.Ergeebnis = Ergeebnis;
        }
示例#2
0
        static public string RegexPatternAlternatiiveBerecne(
            string[] MengeOptioon)
        {
            if (null == MengeOptioon)
            {
                return(null);
            }

            var MengeKandidaatEscaped =
                MengeOptioon
                .Where((Kandidaat) => null != Kandidaat)
                .Select((Kandidaat) =>
            {
                if (0 < Kandidaat.Length && Kandidaat.TrimNullable().Length < 1)
                {
                    return(@"\s");
                }

                return(Regex.Escape(Kandidaat));
            }).ToArray();

            return
                ("(" +
                 string.Join(
                     "|",
                     MengeKandidaatEscaped) +
                 ")");
        }
        public void VoegKandidaatToe(string naam, string partij, Brush kleur)
        {
            Kandidaat kandidaat = null;

            kandidaat = new Kandidaat(naam, partij, kleur);
            Kandidaten.Add(kandidaat);
        }
        virtual public void Berecne(
            UINodeInfoInTree[]      MengeKandidaatUtilmenuAst)
        {
            if (null == AstLayerUtilmenu)
            {
                return;
            }

            if (!(true == AstLayerUtilmenu.VisibleIncludingInheritance))
            {
                return;
            }

            AstHeader =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstLayerUtilmenu,
                    (Kandidaat) => Kandidaat.PyObjTypNameIsContainer(), 2, 1);

            AstExpandedUtilMenu =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstLayerUtilmenu,
                    (Kandidaat) => string.Equals("ExpandedUtilMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 2, 1);

            if (null == AstExpandedUtilMenu)
            {
                return;
            }

            var AstExpandedUtilMenuLaagePlusVonParentErbeLaage = AstExpandedUtilMenu.LaagePlusVonParentErbeLaage();

            if (!AstExpandedUtilMenuLaagePlusVonParentErbeLaage.HasValue)
            {
                return;
            }

            UINodeInfoInTree UtilmenuGbsAst = null;

            if (null != MengeKandidaatUtilmenuAst)
            {
                UtilmenuGbsAst = MengeKandidaatUtilmenuAst.FirstOrDefault((Kandidaat) => KandidaatUtilmenuLaagePasendZuExpandedUtilmenu(AstExpandedUtilMenu, Kandidaat));
            }

            AstHeaderLabel =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    UtilmenuGbsAst,
                    (Kandidaat) => string.Equals("EveLabelMedium", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 2, 1);

            if (null != AstHeaderLabel)
            {
                Header = new UIElementText(AstHeaderLabel.AsUIElementIfVisible(), AstHeaderLabel.LabelText());
            }

            if (null != Header)
            {
                MenuTitel = Header.Text;
            }
        }
 public void VoegStemmenToe(Kandidaat huidigeKandidaat)
 {
     foreach (Kandidaat kandidaat in Kandidaten)
     {
         if (huidigeKandidaat == kandidaat)
         {
             kandidaat.AantalStemmen++;
         }
     }
 }
示例#6
0
 private void LstKandidaten_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
 {
     if (lstKandidaten.SelectedItem != null)
     {
         huidigeKandidaat = (Kandidaat)lstKandidaten.SelectedItem;
         beheerKandidaat.VoegStemmenToe(huidigeKandidaat);
         KoppelStemmen();
         lstKandidaten.SelectedItem = null;
     }
 }
        public void Berecne(
            GbsListGroupedEntryZuusctand ListEntry,
            ISictAutomatZuusctand Automaat)
        {
            this.ListEntry = ListEntry;
            this.Automaat  = Automaat;

            Int64?SaitWindowSurveyScanViewListBeginShipSctreke = null;
            Int64?DistanceScrankeMin = null;
            Int64?DistanceScrankeMax = null;

            InRaumObjektType[] MengeInRaumObjekt = null;

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

                if (null == Automaat)
                {
                    return;
                }

                DistanceScrankeBerecne(ListEntry, Automaat, out SaitWindowSurveyScanViewListBeginShipSctreke, out DistanceScrankeMin, out DistanceScrankeMax);

                var MengeKandidaatInRaumObjekt = new List <InRaumObjektType>();

                MengeKandidaatInRaumObjekt.AddRange(
                    Automaat.MengeTarget().OfType <InRaumObjektType>());

                /*
                 * 2015.03.12
                 *
                 * if (typeof(SictAuswertGbsTarget) == typeof(InRaumObjektType))
                 * {
                 * }
                 * */

                MengeInRaumObjekt =
                    MengeKandidaatInRaumObjekt
                    .Where((Kandidaat) =>
                           Kandidaat.SictungLezteDistanceScrankeMin() <= DistanceScrankeMax &&
                           DistanceScrankeMin <= Kandidaat.SictungLezteDistanceScrankeMax())
                    .ToArray();
            }
            finally
            {
                this.SaitWindowSurveyScanViewListBeginShipSctreke = SaitWindowSurveyScanViewListBeginShipSctreke;
                this.DistanceScrankeMin = DistanceScrankeMin;
                this.DistanceScrankeMax = DistanceScrankeMax;
                this.MengeInRaumObjekt  = MengeInRaumObjekt;
            }
        }
        private void MaakKandidaten()
        {
            Kandidaat kandidaat = null;

            kandidaat = new Kandidaat("Fart De Bever", "N.VA", Brushes.Yellow);
            Kandidaten.Add(kandidaat);
            kandidaat = new Kandidaat("Kristof Kalfo", "Groen", Brushes.Green);
            Kandidaten.Add(kandidaat);
            kandidaat = new Kandidaat("Stom van Grieken", "Vlaams Behang", Brushes.Pink);
            Kandidaten.Add(kandidaat);
            kandidaat = new Kandidaat("Gwendotrien Trutten", "Gesloten.Vld", Brushes.Blue);
            Kandidaten.Add(kandidaat);
        }
示例#9
0
        static public void PropagiireVonScnapscusNaacMengeZuusctand <ObjektType>(
            Int64 ScnapscusZait,
            IEnumerable <ObjektIdentScnapscusType> ScnapscusMengeObjektZuusctand,
            ICollection <ObjektType> MengeObjektZuusctand)
            where ObjektType : SictZuObjektMengeScnapscusZuZaitAggr <ObjektIdentScnapscusType, SictScnapscusAlsFortsazZuuläsigType, SictZuusazInfoScnapscusType>, new()
        {
            if (null == MengeObjektZuusctand)
            {
                return;
            }

            var MengeObjektZuusctandBeraitsVersorgt = MengeObjektZuusctand.Take(0).ToList();

            if (null != ScnapscusMengeObjektZuusctand)
            {
                foreach (var ScnapscusObjektZuusctand in ScnapscusMengeObjektZuusctand)
                {
                    var ObjektZuusctand =
                        MengeObjektZuusctand.FirstOrDefault((Kandidaat) => Kandidaat.PasendZuBisherige(ScnapscusObjektZuusctand));

                    if (null == ObjektZuusctand)
                    {
                        ObjektZuusctand = new ObjektType();

                        MengeObjektZuusctand.Add(ObjektZuusctand);
                    }

                    MengeObjektZuusctandBeraitsVersorgt.Add(ObjektZuusctand);

                    ObjektZuusctand.AingangScnapscus(ScnapscusZait, ScnapscusObjektZuusctand);
                }
            }

            var MengeObjektOoneAusScnapscusZuusctand =
                MengeObjektZuusctand.Except(MengeObjektZuusctandBeraitsVersorgt);

            foreach (var ObjektOoneAusScnapscusZuusctand in MengeObjektOoneAusScnapscusZuusctand)
            {
                ObjektOoneAusScnapscusZuusctand.AingangScnapscusLeer(ScnapscusZait);
            }
        }
示例#10
0
        static public IEnumerable <KeyValuePair <OreTypSictEnum, CheckBox> > MengeZuOreTypReprBerecne()
        {
            var ListeOreTypRepräsentiirt =
                MengeOreTypRepräsentiirt.OrderBy((Kandidaat) => Kandidaat.ToString()).ToArray();

            foreach (var OreTypRepräsentiirt in MengeOreTypRepräsentiirt)
            {
                var CheckBoxLabelString = Regex.Replace(OreTypRepräsentiirt.ToString(), "_", " ");

                var CheckBoxLabel = new   TextBlock();
                CheckBoxLabel.Text              = CheckBoxLabelString;
                CheckBoxLabel.Margin            = new Thickness(0);
                CheckBoxLabel.VerticalAlignment = VerticalAlignment.Center;

                var CheckBox = new CheckBox();

                CheckBox.Content           = CheckBoxLabel;
                CheckBox.Margin            = new Thickness(4);
                CheckBox.VerticalAlignment = VerticalAlignment.Center;

                yield return(new KeyValuePair <OreTypSictEnum, CheckBox>(OreTypRepräsentiirt, CheckBox));
            }
        }
示例#11
0
        virtual public void Berecne()
        {
            if (null == InfoPanelAst)
            {
                return;
            }

            if (!(true == InfoPanelAst.VisibleIncludingInheritance))
            {
                return;
            }

            TopContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    InfoPanelAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("topCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderBtnContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("headerBtnCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderBtnContExpandButtonAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    HeaderBtnContAst, (Kandidaat) =>
                    string.Equals("Sprite", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("headerCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            MainContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    InfoPanelAst, (Kandidaat) =>
                    string.Equals("ContainerAutoSize", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("mainCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            var ExpandedContent = MainContAst.AlsContainer();

            var ExpandedListLabelString =
                MainContAst?.ExtraktMengeLabelString()?.OrdnungLabel()?.ToArray();

            bool?      MainContSictbar    = null;
            IUIElement ExpandToggleButton = null;

            if (null != MainContAst)
            {
                MainContSictbar = MainContAst.VisibleIncludingInheritance;
            }

            if (null != HeaderBtnContExpandButtonAst)
            {
                ExpandToggleButton = HeaderBtnContExpandButtonAst.AlsSprite();
            }

            //	var HeaderLabel = TopContAst.GröösteLabel().AlsUIElementLabelStringFalsLabelString();
            var HeaderLabel = TopContAst?.ExtraktMengeLabelString()?.Grööste();

            var HeaderContent = TopContAst?.AlsContainer();

            var Ergeebnis = new InfoPanel(InfoPanelAst.AlsContainer())
            {
                IsExpanded         = MainContSictbar,
                ExpandToggleButton = ExpandToggleButton,
                ExpandedContent    = ExpandedContent,
                HeaderContent      = HeaderContent,
            };

            this.Ergeebnis = Ergeebnis;
        }
示例#12
0
 public SictGbsWindowZuusctand WindowSurveyScanView()
 {
     return(MengeWindow
            .FirstOrDefaultNullable((Kandidaat) => Kandidaat.AingangScnapscusTailObjektIdentLezteBerecne() is VonSensor.WindowSurveyScanView));
 }
        /*
         * 2014.09.26
         *
         * [JsonProperty]
         * public MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict
         * {
         *      private set;
         *      get;
         * }
         *
         * public KeyValuePair<SictTargetZuusctand, SictWertMitZait<KeyValuePair<GbsListGroupedEntryZuusctand, Int64>>>[] MengeZuTargetMesungSurveyScanListEntryUndErzMenge
         * {
         *      get
         *      {
         *              var MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict = this.MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict;
         *
         *              if (null == MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict)
         *              {
         *                      return null;
         *              }
         *
         *              return MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict.MengeZuTargetMesungSurveyScanListEntryUndErzMenge;
         *      }
         * }
         *
         * void AktualisiireTailMengeZuTargetMesungSurveyScanListEntryUndErzMenge(
         *      Optimat.ScpezEveOnln.SictAutomatZuusctand AutomaatZuusctand)
         * {
         *      this.MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict = new MengeZuTargetMesungSurveyScanListEntryUndErzMengeBerict(
         *              AutomaatZuusctand,
         *              ListeIndikatorZuTargetSurveyScanListEntry);
         * }
         * */

        public void AgregiireVerbindungSurveyScanViewListEntryZuTarget(
            Optimat.ScpezEveOnln.SictAutomatZuusctand AutomaatZuusctand)
        {
            try
            {
                if (null == AutomaatZuusctand)
                {
                    return;
                }

                var MengeTarget = AutomaatZuusctand.MengeTarget();
                var AutoMine    = AutomaatZuusctand.AutoMine;

                var MenuKaskaadeLezte = AutomaatZuusctand.MenuKaskaadeLezte();

                if (null == AutoMine)
                {
                    return;
                }

                if (null == MenuKaskaadeLezte)
                {
                    return;
                }

                if (MenuKaskaadeLezte.EndeZait.HasValue)
                {
                    return;
                }

                var MenuKaskaadeLezteScritVorherZait =
                    AutomaatZuusctand.ZuScnapscusFrühesteZaitAlsNuzerZaitBerecneScritVorherNuzerZait(MenuKaskaadeLezte);

                var MenuKaskaadeLezteAlterScritAnzaal =
                    AutomaatZuusctand.ZuObjektBerecneAlterScnapscusAnzaal(MenuKaskaadeLezte);

                if (!MenuKaskaadeLezteAlterScritAnzaal.HasValue)
                {
                    return;
                }

                if (!(2 < MenuKaskaadeLezteAlterScritAnzaal))
                {
                    return;
                }

                if (ListeVersuucVerbindungSurveyScanViewListEntryZuTarget.Any((Kandidaat) => Kandidaat.Menu == MenuKaskaadeLezte))
                {
                    //	zu diise Menu isc beraits Verbindung berecnet worde.
                    return;
                }

                GbsListGroupedEntryZuusctand MenuWurzelSurveyScanListEntry                  = null;
                SictTargetZuusctand[]        TailmengeTargetPasendZuSurveyScanEntry         = null;
                SictTargetZuusctand[]        MengeTargetMitTransitioonInZaitraumUmMenuBegin = null;
                SictTargetZuusctand          TargetZuListEntry = null;

                try
                {
                    var MenuKaskaadeLezteMenu0ListeEntry = MenuKaskaadeLezte.AusMenu0ListeEntryBerecne();

                    if (null == MenuKaskaadeLezteMenu0ListeEntry)
                    {
                        return;
                    }

                    var GbsWindowSurveyScanView = AutomaatZuusctand.WindowSurveyScanView();

                    if (null == GbsWindowSurveyScanView)
                    {
                        return;
                    }

                    var SurveyScanList = GbsWindowSurveyScanView.ListHaupt;

                    if (null == SurveyScanList)
                    {
                        return;
                    }

                    var MengeTargetTailmengeBisVorherigeScrit =
                        MengeTarget
                        .WhereNullable((Kandidaat) => Kandidaat.SaitAingangUnglaicDefaultLezteListeAingangAnzaal() < 2)
                        .ToArrayNullable();

                    if (MengeTargetTailmengeBisVorherigeScrit.IsNullOrEmpty())
                    {
                        return;
                    }

                    var AutoMineMengeTargetVerwendet = AutoMine.MengeTargetVerwendet;

                    if (AutoMineMengeTargetVerwendet.IsNullOrEmpty())
                    {
                        return;
                    }

                    var MenuEntryUnlockTarget = MenuKaskaadeLezteMenu0ListeEntry.MenuEntryTargetUnLock();

                    if (null == MenuEntryUnlockTarget)
                    {
                        return;
                    }

                    MenuWurzelSurveyScanListEntry =
                        SurveyScanList.ListeEntry()
                        .FirstOrDefaultNullable((KandidaatEntry) =>
                                                AutomaatZuusctand.GbsMenuLezteInAstMitHerkunftAdrese(KandidaatEntry.GbsAstHerkunftAdrese) ==
                                                MenuKaskaadeLezte);

                    if (null == MenuWurzelSurveyScanListEntry)
                    {
                        return;
                    }

                    /*
                     * 2014.09.26
                     *
                     * Ersaz durc AutomaatZuusctand.ZuSurveyScanEntryMengeKandidaatTarget.
                     *
                     * TailmengeTargetPasendZuSurveyScanEntry =
                     *      MengeTargetTailmengeBisVorherigeScrit
                     *      .WhereNullable((KandidaatTarget) =>
                     *              {
                     *                      var AusAutoMineTargetInfo =
                     *                              AutoMineMengeTargetVerwendet
                     *                              .FirstOrDefaultNullable((KandidaatAusAutoMineTargetInfo) => KandidaatAusAutoMineTargetInfo.Key == KandidaatTarget);
                     *
                     *                      if (null == AusAutoMineTargetInfo.Key)
                     *                      {
                     *                              return false;
                     *                      }
                     *
                     *                      return
                     *                              AusAutoMineTargetInfo.Value.AusSurveyScanMengeListEntryPasendZuOreType
                     *                              .ContainsNullable(MenuWurzelSurveyScanListEntry);
                     *              })
                     *      .ToArrayNullable();
                     * */

                    TailmengeTargetPasendZuSurveyScanEntry =
                        AutomaatZuusctand.ZuSurveyScanEntryMengeKandidaatTarget(MenuWurzelSurveyScanListEntry).ToArrayNullable();

                    if (1 == TailmengeTargetPasendZuSurveyScanEntry.CountNullable())
                    {
                        TargetZuListEntry = TailmengeTargetPasendZuSurveyScanEntry.FirstOrDefault();

                        return;
                    }

                    if (TailmengeTargetPasendZuSurveyScanEntry.IsNullOrEmpty())
                    {
                        return;
                    }

                    MengeTargetMitTransitioonInZaitraumUmMenuBegin =
                        TailmengeTargetPasendZuSurveyScanEntry
                        .WhereNullable((KandidaatTarget) => MenuKaskaadeLezteScritVorherZait <= KandidaatTarget.InputFookusTransitioonLezteZait)
                        .ToArrayNullable();

                    var MengeTargetMitTransitioonInZaitraumUmMenuBeginTailmengeZiilWertAin =
                        MengeTargetMitTransitioonInZaitraumUmMenuBegin
                        .WhereNullable((Kandidaat) => Kandidaat.InputFookusTransitioonLezteZiilWert ?? false)
                        .ToArrayNullable();

                    if (!(1 == MengeTargetMitTransitioonInZaitraumUmMenuBeginTailmengeZiilWertAin.CountNullable()))
                    {
                        //	meerere Target mit aingescaltete InputFookus in Zaitraum.
                        return;
                    }

                    var Target = MengeTargetMitTransitioonInZaitraumUmMenuBeginTailmengeZiilWertAin.FirstOrDefault();

                    if (Target.ScnapscusFrühesteZait < Target.InputFookusTransitioonLezteZait)
                    {
                        //	Target ist nit noi.

                        TargetZuListEntry = Target;
                    }
                }
                finally
                {
                    ListeVersuucVerbindungSurveyScanViewListEntryZuTarget.Enqueue(
                        new VerbindungSurveyScanViewListEntryZuTargetDurcMenuErgeebnis(
                            MenuKaskaadeLezte,
                            MenuWurzelSurveyScanListEntry,
                            TailmengeTargetPasendZuSurveyScanEntry,
                            MengeTargetMitTransitioonInZaitraumUmMenuBegin,
                            TargetZuListEntry));

                    if (null != TargetZuListEntry)
                    {
                        InternListeIndikatorZuTargetSurveyScanListEntry.Enqueue(
                            new SictWertMitZait <KeyValuePair <SictTargetZuusctand, GbsListGroupedEntryZuusctand> >(
                                MenuKaskaadeLezte.BeginZait ?? -1,
                                new KeyValuePair <SictTargetZuusctand, GbsListGroupedEntryZuusctand>(
                                    TargetZuListEntry,
                                    MenuWurzelSurveyScanListEntry)));
                    }
                }
            }
            finally
            {
                ListeVersuucVerbindungSurveyScanViewListEntryZuTarget.ListeKürzeBegin(3);
                InternListeIndikatorZuTargetSurveyScanListEntry.ListeKürzeBegin(40);
            }
        }
        public void Berecne()
        {
            if (null == AstAgentEntry)
            {
                return;
            }

            if (!(true == AstAgentEntry.VisibleIncludingInheritance))
            {
                return;
            }

            TextContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstAgentEntry, (Kandidaat) => string.Equals("textCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1);

            ButtonStartConversationAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstAgentEntry, (Kandidaat) =>
                    string.Equals("ButtonIcon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    Regex.Match(Kandidaat.Hint ?? "", "Conversation", RegexOptions.IgnoreCase).Success,
                    2, 1);

            AstTextContText =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TextContAst, (Kandidaat) => string.Equals("text", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1);

            AstTextContTextMengeLabel =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstTextContText, (Kandidaat) =>
                    string.Equals("EveLabelMedium", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    null, 2, 1);

            StartConversationButton = ButtonStartConversationAst.AsUIElementIfVisible();

            if (null != AstTextContTextMengeLabel)
            {
                AstTextContTextMengeLabel =
                    AstTextContTextMengeLabel
                    .OrderBy((Kandidaat) =>
                {
                    var LaagePlusVonParentErbeLaage = Kandidaat.LaagePlusVonParentErbeLaage();

                    if (!LaagePlusVonParentErbeLaage.HasValue)
                    {
                        return(-1);
                    }

                    return(LaagePlusVonParentErbeLaage.Value.B);
                })
                    .ToArray();
            }

            if (null != AstTextContTextMengeLabel &&
                null != AstTextContText)
            {
                if (AstTextContText.Grööse.HasValue)
                {
                    AstTextContTextMengeLabelLinx =
                        AstTextContTextMengeLabel
                        .Where((Kandidaat) =>
                    {
                        if (!Kandidaat.LaageInParent.HasValue)
                        {
                            return(false);
                        }

                        return(Kandidaat.LaageInParent.Value.A < AstTextContText.Grööse.Value.A * 0.5);
                    })
                        .ToArray();
                }
            }

            if (null == AstTextContTextMengeLabelLinx)
            {
                return;
            }

            string AgentName            = null;
            string AgentTyp             = null;
            int?   AgentLevel           = null;
            string ZaileTypUndLevelText = null;

            if (null != AstTextContTextMengeLabelLinx)
            {
                if (1 < AstTextContTextMengeLabelLinx.Length)
                {
                    AgentName            = AstTextContTextMengeLabelLinx.FirstOrDefault().SetText;
                    ZaileTypUndLevelText = AstTextContTextMengeLabelLinx.LastOrDefault().SetText;
                }
            }

            var TypUndLevel = AgentTypUndLevel(ZaileTypUndLevelText);

            if (TypUndLevel.HasValue)
            {
                AgentTyp   = TypUndLevel.Value.Key;
                AgentLevel = TypUndLevel.Value.Value;
            }

            var Ergeebnis = new LobbyAgentEntry(TextContAst.AsUIElementIfVisible())
            {
                LabelText = AstAgentEntry?.ExtraktMengeLabelString()?.OrdnungLabel()?.ToArray(),
                StartConversationButton = StartConversationButton,
            };

            this.Ergeebnis = Ergeebnis;
        }
示例#15
0
 public IEnumerable <SictGbsWindowZuusctand> MengeWindowZuusctand <WindowScnapscusType>()
 {
     return(MengeWindowZuusctand()
            .WhereNullable((Kandidaat) => Kandidaat.AingangScnapscusTailObjektIdentLezteBerecne() is WindowScnapscusType));
 }
示例#16
0
        static public void ZuZaitAingangMengeObjektScnapscus <AbgelaiteteType>(
            Int64 Zait,
            IEnumerable <ObjektIdentScnapscusType> MengeObjektScnapscus,
            IList <AbgelaiteteType> ZiilListeObjektZuusctandAggr,
            bool TailmengeWelceNictInScnapscusRepräsentiirtEntferne = false,
            SictZuusazInfoScnapscusType ZuusazInfoScnapscus         = default(SictZuusazInfoScnapscusType))
            where AbgelaiteteType : SictZuObjektMengeScnapscusZuZaitAggr <ObjektIdentScnapscusType, SictScnapscusAlsFortsazZuuläsigType, SictZuusazInfoScnapscusType>, new()
        {
            if (null == ZiilListeObjektZuusctandAggr)
            {
                return;
            }

            var MengeObjektRepräsentiirtInScnapscus = new List <AbgelaiteteType>();

            if (null != MengeObjektScnapscus)
            {
                foreach (var ObjektScnapscus in MengeObjektScnapscus)
                {
                    var ObjektZuusctandAggr = ZiilListeObjektZuusctandAggr.FirstOrDefault((Kandidaat) => Kandidaat.PasendZuBisherige(ObjektScnapscus));

                    if (null == ObjektZuusctandAggr)
                    {
                        ObjektZuusctandAggr = new AbgelaiteteType();

                        ZiilListeObjektZuusctandAggr.Add(ObjektZuusctandAggr);
                    }

                    MengeObjektRepräsentiirtInScnapscus.Add(ObjektZuusctandAggr);

                    ObjektZuusctandAggr.AingangScnapscus(Zait, ObjektScnapscus, ZuusazInfoScnapscus);
                }
            }

            var MengeObjektRepräsentiirtInScnapscusNict =
                ZiilListeObjektZuusctandAggr.Except(MengeObjektRepräsentiirtInScnapscus).ToArray();

            foreach (var ObjektRepräsentiirtInScnapscusNict in MengeObjektRepräsentiirtInScnapscusNict)
            {
                if (TailmengeWelceNictInScnapscusRepräsentiirtEntferne)
                {
                    ZiilListeObjektZuusctandAggr.Remove(ObjektRepräsentiirtInScnapscusNict);
                }
                else
                {
                    if (null != ObjektRepräsentiirtInScnapscusNict)
                    {
                        ObjektRepräsentiirtInScnapscusNict.AingangScnapscusLeer(Zait, ZuusazInfoScnapscus);
                    }
                }
            }

            //	!!!!	Ainbau erhaltung Ordnung
        }
        public void Berecne()
        {
            var TreeViewEntryAst = this.TreeViewEntryAst;

            if (null == TreeViewEntryAst)
            {
                return;
            }

            TopContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TreeViewEntryAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("topCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            TopContLabelAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) => AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat));

            ChildContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TreeViewEntryAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("childCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            MengeChildAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    ChildContAst, (Kandidaat) =>
                    Regex.Match(Kandidaat.PyObjTypName ?? "", "TreeViewEntry", RegexOptions.IgnoreCase).Success,
                    null, 2, 1);

            TopContIconAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    (string.Equals("Icon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) ||
                     string.Equals("EveIcon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)),
                    2, 1);

            var TopContSpacerAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("spacerCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            var ExpandCollapseToggleFläce = TopContSpacerAst.AsUIElementIfVisible();

            LabelAst = TopContLabelAst;

            if (null != MengeChildAst)
            {
                MengeChildAuswert =
                    MengeChildAst
                    .Select((Ast) =>
                {
                    var Auswert = new SictAuswertTreeViewEntry(Ast);
                    Auswert.Berecne();
                    return(Auswert);
                }).ToArray();
            }

            IUIElement TopContFläce =
                (null == TopContAst) ? null : new UIElement(
                    TopContAst.AsUIElementIfVisible());

            var TopContLabel =
                (null == TopContLabelAst) ? null : new UIElementText(
                    TopContLabelAst.AsUIElementIfVisible(), TopContLabelAst.LabelText());

            var TopContIconTyp =
                (null == TopContIconAst) ? null : TopContIconAst.TextureIdent0;

            var TopContIconColor =
                (null == TopContIconAst) ? null : TopContIconAst.Color;

            var LabelText =
                (null == LabelAst) ? null : LabelAst.LabelText();

            var MengeChild =
                (null == MengeChildAuswert) ? null :
                MengeChildAuswert
                .Select((Auswert) => Auswert.Ergeebnis)
                .Where((Kandidaat) => null != Kandidaat)
                .ToArray();

            var Ergeebnis = new TreeViewEntry(TreeViewEntryAst.AlsContainer())
            {
                ExpandToggleButton = ExpandCollapseToggleFläce,
                Child      = MengeChild,
                IsSelected = TreeViewEntryAst?.isSelected,
            };

            this.Ergeebnis = Ergeebnis;
        }
示例#18
0
        public void Aktualisiire(ISictAutomatZuusctand Automaat)
        {
            OreTypSictEnum?OreTypSictEnum           = null;
            GbsListGroupedEntryZuusctand EntryGroup = null;
            var  ListeEntryItem = new List <GbsListGroupedEntryZuusctand>();
            bool?InSurveyScanScnapscusIstOoberste = null;
            bool?InSurveyScanScnapscusIstUnterste = null;

            if (null == Automaat)
            {
                return;
            }

            var OreTypSictString = this.OreTypSictString;

            if (null == OreTypSictString)
            {
                return;
            }

            OreTypSictEnum = TempAuswertGbs.Extension.OreTypBerecneAusOreTypSictString(OreTypSictString);

            var WindowSurveyScanView = Automaat.WindowSurveyScanView();

            if (null == WindowSurveyScanView)
            {
                return;
            }

            var WindowSurveyScanViewList = WindowSurveyScanView.ListHaupt;

            if (null == WindowSurveyScanViewList)
            {
                return;
            }

            try
            {
                var WindowSurveyScanViewListListeEntry = WindowSurveyScanViewList.ListeEntry();

                if (null == WindowSurveyScanViewListListeEntry)
                {
                    return;
                }

                foreach (var AusSurveyScanListEntry in WindowSurveyScanViewListListeEntry)
                {
                    if (!string.Equals(AusSurveyScanListEntry.OreTypSictString, this.OreTypSictString, StringComparison.InvariantCultureIgnoreCase))
                    {
                        continue;
                    }

                    if (AusSurveyScanListEntry.IstGroup ?? false)
                    {
                        EntryGroup = AusSurveyScanListEntry;
                        continue;
                    }

                    ListeEntryItem.Add(AusSurveyScanListEntry);
                }

                var InScnapscusListeEntrySictbar =
                    ListeEntryItem
                    .Where((Kandidaat) => Kandidaat.InLezteScnapscusSictbar())
                    .OrderBy((Kandidaat) => Kandidaat.LaageB)
                    .ToArray();

                var InScnapscusMengeEntrySictbarOoberste =
                    InScnapscusListeEntrySictbar.FirstOrDefault();

                var InScnapscusMengeEntrySictbarUnterste =
                    InScnapscusListeEntrySictbar.LastOrDefault();

                if (null != InScnapscusMengeEntrySictbarOoberste &&
                    null != InScnapscusMengeEntrySictbarUnterste)
                {
                    InSurveyScanScnapscusIstOoberste =
                        !WindowSurveyScanViewListListeEntry.Any((EntryAndere) =>
                                                                (EntryAndere.InLezteScnapscusSictbar()) &&
                                                                EntryAndere.LaageB < InScnapscusMengeEntrySictbarOoberste.LaageB);

                    InSurveyScanScnapscusIstUnterste =
                        !WindowSurveyScanViewListListeEntry.Any((EntryAndere) =>
                                                                (EntryAndere.InLezteScnapscusSictbar()) &&
                                                                InScnapscusMengeEntrySictbarUnterste.LaageB < EntryAndere.LaageB);
                }
            }
            finally
            {
                this.OreTypSictEnum = OreTypSictEnum;
                this.EntryGroup     = EntryGroup;
                this.InSurveyScanScnapscusIstOoberste = InSurveyScanScnapscusIstOoberste;
                this.InSurveyScanScnapscusIstUnterste = InSurveyScanScnapscusIstUnterste;

                if (null == this.ListeEntryItem)
                {
                    this.ListeEntryItem = new List <GbsListGroupedEntryZuusctand>();
                }

                Bib3.Glob.PropagiireListeRepräsentatioonMitReprUndIdentPerClrReferenz(
                    ListeEntryItem,
                    this.ListeEntryItem);
            }
        }
示例#19
0
        public void Berecne(int?sessionDurationRemaining)
        {
            if (null == GbsBaumWurzel)
            {
                return;
            }

            AstSidePanels =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel,
                    (Kandidaat) => string.Equals("SidePanels", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase));

            LayerShipUiAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel,
                    (Kandidaat) => string.Equals("ShipUI", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    5, 1);

            var FensterLayerTarget =
                Optimat.EveOnline.AuswertGbs.Extension
                .FirstMatchingNodeFromSubtreeBreadthFirst(GbsBaumWurzel, (Kandidaat) => string.Equals("l_target", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase));

            var WindowOverviewAst =
                Optimat.EveOnline.AuswertGbs.Extension
                .FirstMatchingNodeFromSubtreeBreadthFirst(GbsBaumWurzel, (Kandidaat) => string.Equals("OverView", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase));

            AstLayerMenu =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_menu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            AstLayerMain =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_main", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            AstLayerModal =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_modal", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            LayerSystemmenuAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("SystemMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_systemmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            LayerSystemmenuSysmenuAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    LayerSystemmenuAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("sysmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            LayerLoginAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("Login", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_login", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            var InflightLayer =
                GbsBaumWurzel?.FirstMatchingNodeFromSubtreeBreadthFirst(c =>
                                                                        (c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("Layer") ?? false) &&
                                                                        (c?.Name?.RegexMatchSuccessIgnoreCase("inflight") ?? false));

            var InflightBracketLayer =
                InflightLayer?.FirstMatchingNodeFromSubtreeBreadthFirst(c =>
                                                                        (c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("Layer") ?? false) &&
                                                                        (c?.Name?.RegexMatchSuccessIgnoreCase("bracket") ?? false));

            var setInflightBracket =
                InflightBracketLayer
                ?.MatchingNodesFromSubtreeBreadthFirst(c => c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("InSpaceBracket") ?? false, null, null, null, true)
                ?.Select(bracketNode => bracketNode?.AsInSpaceBracket())
                ?.ToArrayIfNotEmpty();

            var LayerSystemmenuAstMengeKandidaatLabelVersionAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    LayerSystemmenuAst, (Kandidaat) =>
                    Optimat.EveOnline.AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat), null, 3, 1)
                .ConcatNullable(
                    Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                        LayerLoginAst, (Kandidaat) =>
                        Optimat.EveOnline.AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat), null, 3, 1))
                ?.ToArray();

            if (null != LayerSystemmenuAst)
            {
                SystemmenuAuswert = new SictAuswertGbsSystemMenu(LayerSystemmenuAst);

                SystemmenuAuswert.Berecne();
            }

            if (null != LayerSystemmenuAstMengeKandidaatLabelVersionAst)
            {
                foreach (var KandidaatLabelVersionAst in LayerSystemmenuAstMengeKandidaatLabelVersionAst)
                {
                    var Text = KandidaatLabelVersionAst.LabelText();

                    if (null == Text)
                    {
                        continue;
                    }

                    var Match = Regex.Match(Text ?? "", VersionLabelRegexPattern, RegexOptions.IgnoreCase);

                    if (!Match.Success)
                    {
                        continue;
                    }

                    VersionString = Match.Groups[1].Value;
                    break;
                }
            }

            AstLayerModalMengeKandidaatWindow =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerModal, (Kandidaat) =>
                    Regex.Match(Kandidaat.PyObjTypName ?? "", "MessageBox", RegexOptions.IgnoreCase).Success ||
                    Regex.Match(Kandidaat.PyObjTypName ?? "", "HybridWindow", RegexOptions.IgnoreCase).Success ||
                    Regex.Match(Kandidaat.PyObjTypName ?? "", "PopupWnd", RegexOptions.IgnoreCase).Success,
                    null, 3, 1);

            LayerHintAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_hint", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            var SetTooltipNode =
                GbsBaumWurzel.MatchingNodesFromSubtreeBreadthFirst(k => k?.PyObjTypNameMatchesRegexPattern("TooltipGeneric|TooltipPanel") ?? false);

            var SetTooltip =
                SetTooltipNode?.Select(TooltipNode => TooltipNode?.AlsContainer())?.WhereNotDefault()?.ToArrayIfNotEmpty();

            ModuleButtonHintAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("ModuleButtonTooltip", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    (true == Kandidaat.VisibleIncludingInheritance),
                    2, 1);

            AstLayerUtilmenu =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_utilmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            AstLayerAbovemain =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("l_abovemain", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            MengeKandidaatAbovemainMessageAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerAbovemain, (Kandidaat) =>
                    string.Equals("Message", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1);

            MengeKandidaatAbovemainPanelEveMenuAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerAbovemain, (Kandidaat) =>
                    string.Equals("PanelEveMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1);

            MengeKandidaatAbovemainPanelGroupAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerAbovemain, (Kandidaat) =>
                    string.Equals("PanelGroup", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1);

            LayerMainMengeKandidaatWindowAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerMain, (Kandidaat) => true == Kandidaat.VisibleIncludingInheritance &&
                    (null != Kandidaat.Caption || null != Kandidaat.WindowID),
                    null,
                    2,
                    1,
                    true);

            MengeKandidaatWindowAst =
                Bib3.Glob.ListeEnumerableAgregiirt(
                    new UINodeInfoInTree[][] {
                LayerMainMengeKandidaatWindowAst,
                AstLayerModalMengeKandidaatWindow,
            })
                ?.WhereNotDefault()
                ?.ToArray();

            MengeWindow =
                MengeKandidaatWindowAst
                ?.Select((WindowAst) => Optimat.EveOnline.AuswertGbs.Glob.WindowBerecneScpezTypFürGbsAst(WindowAst))
                ?.WhereNotDefault()
                ?.ToArray();

            MengeKandidaatMenuAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    AstLayerMenu, (Kandidaat) =>
                    Regex.Match(Kandidaat.PyObjTypName ?? "", "DropDownMenu", RegexOptions.IgnoreCase).Success,
                    null, 2, 1);

            if (null != ModuleButtonHintAst)
            {
                ModuleButtonTooltipAuswert = new SictAuswertGbsModuleButtonTooltip(ModuleButtonHintAst);
                ModuleButtonTooltipAuswert.Berecne();
            }

            if (null != MengeKandidaatAbovemainPanelEveMenuAst)
            {
                MengeKandidaatAbovemainPanelEveMenuAuswert =
                    MengeKandidaatAbovemainPanelEveMenuAst
                    .Select((GbsAst) =>
                {
                    var Auswert = new SictAuswertGbsPanelEveMenu(GbsAst);
                    Auswert.Berecne();
                    return(Auswert);
                }).ToArray();
            }

            if (null != MengeKandidaatAbovemainPanelGroupAst)
            {
                MengeKandidaatAbovemainPanelGroupAuswert =
                    MengeKandidaatAbovemainPanelGroupAst
                    .Select((GbsAst) =>
                {
                    var Auswert = new SictAuswertGbsPanelGroup(GbsAst);
                    Auswert.Berecne();
                    return(Auswert);
                }).ToArray();
            }

            var MengeKandidaatUtilmenu =
                (null == AstLayerUtilmenu) ? null :
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    GbsBaumWurzel, (Kandidaat) =>
                    (true == Kandidaat.VisibleIncludingInheritance) &&
                    string.Equals("UtilMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, null, 1);

            Utilmenu = new[] { AstLayerUtilmenu.AlsUtilmenu() }.WhereNotDefault()?.ToArrayIfNotEmpty();

            AuswertSidePanels = new SictAuswertGbsSidePanels(AstSidePanels);
            AuswertSidePanels.Berecne();

            LayerShipUiAstAuswert = new SictAuswertGbsShipUi(LayerShipUiAst);
            LayerShipUiAstAuswert.Berecne();

            AuswertLayerTarget = new SictAuswertGbsLayerTarget(FensterLayerTarget);
            AuswertLayerTarget.Berecne();

            var AuswertSidePanelsAuswertPanelCurrentSystem = AuswertSidePanels.AuswertPanelCurrentSystem;
            var AuswertSidePanelsAuswertPanelRoute         = AuswertSidePanels.AuswertPanelRoute;
            var AuswertSidePanelsAstInfoPanelMissions      = AuswertSidePanels.AuswertPanelMissions;

            var Ergeebnis = new MemoryMeasurement
            {
                SessionDurationRemaining = sessionDurationRemaining,
            };

            Ergeebnis.UserDefaultLocaleName = BotEngine.WinApi.Kernel32.GetUserDefaultLocaleName();

            if (null != SystemmenuAuswert)
            {
                Ergeebnis.SystemMenu = SystemmenuAuswert.Ergeebnis;
            }

            var AstLayerMainGrööse = AstLayerMain?.Grööse;

            if (AstLayerMainGrööse.HasValue)
            {
                Ergeebnis.ScreenSize = new Bib3.Geometrik.Vektor2DInt((int)AstLayerMainGrööse.Value.A, (int)AstLayerMainGrööse.Value.B);
            }

            if (null != ModuleButtonTooltipAuswert)
            {
                Ergeebnis.ModuleButtonTooltip = ModuleButtonTooltipAuswert.Ergeebnis;
            }

            Ergeebnis.Menu =
                MengeKandidaatMenuAst?.Select(SictAuswertGbsMenu.ReadMenu)?.WhereNotDefault()?.ToArrayIfNotEmpty();

            Ergeebnis.AbovemainMessage =
                MengeKandidaatAbovemainMessageAst
                ?.Select((GbsAst) => GbsAst?.LargestLabelInSubtree()?.AsUIElementTextIfTextNotEmpty())
                ?.Where(Label => 0 < Label?.Text?.Length)
                ?.ToArrayIfNotEmpty();

            if (null != MengeKandidaatAbovemainPanelEveMenuAuswert)
            {
                Ergeebnis.AbovemainPanelEveMenu =
                    MengeKandidaatAbovemainPanelEveMenuAuswert
                    .Select((Kandidaat) => Kandidaat.Ergeebnis)
                    .Where((Kandidaat) => null != Kandidaat)
                    ?.ToArrayIfNotEmpty();
            }

            if (null != MengeKandidaatAbovemainPanelGroupAuswert)
            {
                Ergeebnis.AbovemainPanelGroup =
                    MengeKandidaatAbovemainPanelGroupAuswert
                    .Select((Kandidaat) => Kandidaat.Ergeebnis)
                    .Where((Kandidaat) => null != Kandidaat)
                    ?.ToArrayIfNotEmpty();
            }

            IWindowStation  WindowStationLobby = null;
            IWindowOverview WindowOverview     = null;

            IWindowInventory[] MengeWindowInventory = null;

            if (null != MengeWindow)
            {
                var MengeWindowStack =
                    MengeWindow
                    .OfType <WindowStack>()
                    .ToArray();

                var MengeWindowStackWindow =
                    MengeWindowStack
                    .Select((WindowStack) => WindowStack.TabSelectedWindow)
                    .Where((Window) => null != Window)
                    .ToArray();

                var MengeWindowMitAusWindowStackWindow =
                    MengeWindow
                    .ConcatNullable(MengeWindowStackWindow)
                    ?.ToArrayIfNotEmpty();

                var MengeWindowOverView =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowOverview>().ToArrayIfNotEmpty();

                var MengeWindowChatChannel =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowChatChannel>().ToArrayIfNotEmpty();

                var MengeWindowSelectedItemView =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowSelectedItemView>().ToArrayIfNotEmpty();

                var MengeWindowPeopleAndPlaces =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowPeopleAndPlaces>().ToArrayIfNotEmpty();

                var MengeWindowDroneView =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowDroneView>().ToArrayIfNotEmpty();

                var MengeWindowFittingWindow =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowShipFitting>().ToArrayIfNotEmpty();

                var MengeWindowFittingMgmt =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowFittingMgmt>().ToArrayIfNotEmpty();

                var MengeWindowStationLobby =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowStation>().ToArrayIfNotEmpty();

                var MengeWindowSurveyScanView =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowSurveyScanView>().ToArrayIfNotEmpty();

                MengeWindowInventory =
                    MengeWindowMitAusWindowStackWindow?.OfType <IWindowInventory>().ToArrayIfNotEmpty();

                var MengeWindowAgentDialogue =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowAgentDialogue>().ToArrayIfNotEmpty();

                var MengeWindowAgentBrowser =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowAgentBrowser>().ToArrayIfNotEmpty();

                var MengeWindowTelecom =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowTelecom>().ToArrayIfNotEmpty();

                var MengeWindowRegionalMarket =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowRegionalMarket>().ToArrayIfNotEmpty();

                var MengeWindowMarketAction =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowMarketAction>().ToArrayIfNotEmpty();

                var MengeWindowItemSell =
                    MengeWindowMitAusWindowStackWindow?.OfType <WindowItemSell>().ToArrayIfNotEmpty();

                Ergeebnis.WindowStack = MengeWindowStack.ToArrayIfNotEmpty();

                WindowOverview     = MengeWindowOverView?.FirstOrDefault();
                WindowStationLobby = MengeWindowStationLobby?.FirstOrDefault();

                Ergeebnis.WindowOverview         = MengeWindowOverView.ToArrayIfNotEmpty();
                Ergeebnis.WindowChatChannel      = MengeWindowChatChannel.ToArrayIfNotEmpty();
                Ergeebnis.WindowSelectedItemView = MengeWindowSelectedItemView.ToArrayIfNotEmpty();
                Ergeebnis.WindowPeopleAndPlaces  = MengeWindowPeopleAndPlaces.ToArrayIfNotEmpty();
                Ergeebnis.WindowDroneView        = MengeWindowDroneView.ToArrayIfNotEmpty();
                Ergeebnis.WindowShipFitting      = MengeWindowFittingWindow.ToArrayIfNotEmpty();
                Ergeebnis.WindowFittingMgmt      = MengeWindowFittingMgmt.ToArrayIfNotEmpty();
                Ergeebnis.WindowStation          = MengeWindowStationLobby.ToArrayIfNotEmpty();
                Ergeebnis.WindowSurveyScanView   = MengeWindowSurveyScanView.ToArrayIfNotEmpty();

                Ergeebnis.WindowInventory     = MengeWindowInventory;
                Ergeebnis.WindowAgentDialogue = MengeWindowAgentDialogue;
                Ergeebnis.WindowAgentBrowser  = MengeWindowAgentBrowser;

                Ergeebnis.WindowTelecom = MengeWindowTelecom;

                Ergeebnis.WindowRegionalMarket = MengeWindowRegionalMarket;
                Ergeebnis.WindowMarketAction   = MengeWindowMarketAction;
                Ergeebnis.WindowItemSell       = MengeWindowItemSell;

                Ergeebnis.WindowProbeScanner = MengeWindowMitAusWindowStackWindow?.OfType <IWindowProbeScanner>().ToArrayIfNotEmpty();

                var MengeWindowSonstige =
                    MengeWindow
                    .Except(
                        new IEnumerable <IWindow>[] {
                    MengeWindowStack,
                    MengeWindowOverView,
                    MengeWindowChatChannel,
                    MengeWindowPeopleAndPlaces,
                    MengeWindowSelectedItemView,
                    MengeWindowSurveyScanView,
                    MengeWindowDroneView,
                    MengeWindowFittingWindow,
                    MengeWindowFittingMgmt,
                    MengeWindowStationLobby,
                    MengeWindowInventory,
                    MengeWindowAgentDialogue,
                    MengeWindowAgentBrowser,
                    MengeWindowTelecom,
                    MengeWindowRegionalMarket,
                    MengeWindowMarketAction,
                    MengeWindowItemSell,
                    Ergeebnis.WindowProbeScanner,
                }.ConcatNullable())
                    .ToArrayIfNotEmpty();

                Ergeebnis.WindowOther = MengeWindowSonstige;
            }

            Ergeebnis.VersionString = VersionString;

            Ergeebnis.Neocom = AuswertSidePanels?.Neocom;

            Ergeebnis.InfoPanelCurrentSystem = AuswertSidePanelsAuswertPanelCurrentSystem?.ErgeebnisScpez;
            Ergeebnis.InfoPanelRoute         = AuswertSidePanelsAuswertPanelRoute?.ErgeebnisScpez;
            Ergeebnis.InfoPanelMissions      = AuswertSidePanelsAstInfoPanelMissions?.ErgeebnisScpez;

            var InfoPanelButtonCurrentSystem = AuswertSidePanels.InfoPanelButtonLocationInfoAst.AsUIElementIfVisible();
            var InfoPanelButtonRoute         = AuswertSidePanels.InfoPanelButtonRouteAst.AsUIElementIfVisible();
            var InfoPanelButtonMissions      = AuswertSidePanels.InfoPanelButtonMissionAst.AsUIElementIfVisible();

            Ergeebnis.InfoPanelButtonCurrentSystem = InfoPanelButtonCurrentSystem;
            Ergeebnis.InfoPanelButtonRoute         = InfoPanelButtonRoute;
            Ergeebnis.InfoPanelButtonMissions      = InfoPanelButtonMissions;
            Ergeebnis.InfoPanelButtonIncursions    = AuswertSidePanels?.InfoPanelButtonIncursionsAst?.AsUIElementIfVisible();

            Ergeebnis.Utilmenu = Utilmenu;

            Ergeebnis.ShipUi = LayerShipUiAstAuswert.Ergeebnis;
            Ergeebnis.Target = AuswertLayerTarget?.SetTarget?.ToArrayIfNotEmpty();

            Ergeebnis.Tooltip = SetTooltip;

            Ergeebnis.InflightBracket = setInflightBracket;

            this.AuswertErgeebnis = Ergeebnis;
        }
示例#20
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>();
                    }
                }
            }
        }