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;
            }
        }
        static public void MengeZuTargetAinscrankungAktualisiire(
            ISictAutomatZuusctand Automaat,
            IList <ZuTargetAinscrankungMengeSurveyScanItem> ZiilMenge)
        {
            var MengeTarget = (null == Automaat) ? null : Automaat.MengeTarget();

            Bib3.Glob.PropagiireListeRepräsentatioon(
                MengeTarget,
                ZiilMenge,
                (Target) => new ZuTargetAinscrankungMengeSurveyScanItem(Target),
                (KandidaatRepr, Target) => KandidaatRepr.Target == Target,
                (Repr, Target) => Repr.Aktualisiire(Automaat),
                false);
        }
        public void Berecne(ISictAutomatZuusctand Automaat)
        {
            var MengeTarget = new List <SictTargetZuusctand>();
            var MengeKandidaatTargetUndAssignedTransitioon =
                new List <KeyValuePair <SictTargetZuusctand, TransitionInfo <Int64, IEnumerable <Int64>, MengeInGrupeAnzaalTransitioon <Int64> > > >();

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

                Zait = Automaat.NuzerZaitMili;

                var MengeKandidaatTarget = Automaat.MengeTarget();

                var FilterMengeTexturIdent = this.FilterMengeTexturIdent;

                if (null != MengeKandidaatTarget)
                {
                    foreach (var Target in MengeKandidaatTarget)
                    {
                        if (null == Target)
                        {
                            continue;
                        }

                        var TargetListeAssignedTransitioon = Target.ListeAssignedTransitioon();

                        if (null == TargetListeAssignedTransitioon)
                        {
                            continue;
                        }

                        var TargetListeAssignedTransitioonLezte =
                            TargetListeAssignedTransitioon.LastOrDefault();

                        MengeKandidaatTargetUndAssignedTransitioon.Add(
                            new KeyValuePair <SictTargetZuusctand, TransitionInfo <Int64, IEnumerable <Int64>, MengeInGrupeAnzaalTransitioon <Int64> > >(
                                Target, TargetListeAssignedTransitioonLezte));

                        foreach (var KandidaatTargetAssignedTransitioon in TargetListeAssignedTransitioon)
                        {
                            var TargetAssignedScritIndex = Automaat.ZuNuzerZaitBerecneScritIndex(KandidaatTargetAssignedTransitioon.ScritIdent);

                            /*
                             * 2014.09.22
                             *
                             * var ZaitDiferenzScritAnzaal = TargetAssignedScritIndex - ModuleTransitioonBeginScritIndex;
                             *
                             * if (!ZaitDiferenzScritAnzaal.HasValue)
                             * {
                             *      continue;
                             * }
                             *
                             * if (1 < Math.Abs(ZaitDiferenzScritAnzaal.Value))
                             * {
                             *      continue;
                             * }
                             * */

                            if (!(FilterTransitioonScritIndexScrankeMin <= TargetAssignedScritIndex))
                            {
                                continue;
                            }

                            if (!(TargetAssignedScritIndex <= FilterTransitioonScritIndexScrankeMax))
                            {
                                continue;
                            }

                            var MengeAssignedGrupeZuunaame = KandidaatTargetAssignedTransitioon.ZuusazInfo.ZiilWertMengeInGrupeZuunaame;

                            if (MengeAssignedGrupeZuunaame.IsNullOrEmpty())
                            {
                                continue;
                            }

                            if (!FilterMengeTexturIdent.IsNullOrEmpty())
                            {
                                if (!MengeAssignedGrupeZuunaame.Any((AssignedGrupeZuunaame) => FilterMengeTexturIdent.Contains(AssignedGrupeZuunaame.Key)))
                                {
                                    continue;
                                }
                            }

                            MengeTarget.Add(Target);
                            break;
                        }
                    }
                }
            }
            finally
            {
                this.MengeKandidaatTargetUndAssignedTransitioon = MengeKandidaatTargetUndAssignedTransitioon.ToArrayFalsNitLeer();
                this.MengeTarget = MengeTarget.ToArrayFalsNitLeer();
            }
        }