static public SictVerlaufBeginUndEndeRef <ShipUiIndicationAuswert> IndicationCaptionMitManöverTypLezte(
            IEnumerable <SictVerlaufBeginUndEndeRef <ShipUiIndicationAuswert> > ListeIndicationOrdnet,
            SictZuInRaumObjektManööverTypEnum ManöverTyp)
        {
            var Prädikaat = new Func <ShipUiIndicationAuswert, bool>((IndicationAuswert) =>
            {
                if (null == IndicationAuswert)
                {
                    return(false);
                }

                return(IndicationAuswert.ManöverTyp == ManöverTyp);
            });

            return(IndicationCaptionPasendZuPrädikaatLezte(ListeIndicationOrdnet, Prädikaat));
        }
예제 #2
0
 abstract public SictAufgaabeZuusctand ManööverAusgefüürtLezteAufgaabeBerecne(SictOverViewObjektZuusctand OverviewObjekt, SictTargetZuusctand Target, SictZuInRaumObjektManööverTypEnum ManööverTyp, long?DistanceScrankeMin = null, long?DistanceScrankeMax = null, bool BedingungNocAktiiv = false);
예제 #3
0
        ManööverAusgefüürtLezteAufgaabeBerecne(
            SictOverViewObjektZuusctand OverviewObjekt,
            SictTargetZuusctand Target,
            SictZuInRaumObjektManööverTypEnum ManööverTyp,
            Int64?DistanceScrankeMin = null,
            Int64?DistanceScrankeMax = null,
            bool BedingungNocAktiiv  = false)
        {
            var ManööverAusgefüürtLezteAufgaabe = ManööverAusgefüürtLezteAufgaabeBerecne();

            if (null == ManööverAusgefüürtLezteAufgaabe)
            {
                return(null);
            }

            var ManööverAusgefüürtLezteAufgaabeParam = ManööverAusgefüürtLezteAufgaabe.AufgaabeParam;

            if (null == ManööverAusgefüürtLezteAufgaabeParam)
            {
                return(null);
            }

            var ManööverAusgefüürtLezteShipUIIndicationMitZait = ManööverAusgefüürtLezteAufgaabe.ManööverErgeebnis;

            if (null == ManööverAusgefüürtLezteShipUIIndicationMitZait)
            {
                return(null);
            }

            var ManööverAusgefüürtLezteShipUIIndication = ManööverAusgefüürtLezteShipUIIndicationMitZait.Wert;

            if (null == ManööverAusgefüürtLezteShipUIIndication)
            {
                return(null);
            }

            if (BedingungNocAktiiv)
            {
                if (ManööverAusgefüürtLezteShipUIIndicationMitZait.EndeZait.HasValue)
                {
                    return(null);
                }
            }

            var OverviewUndTarget = this.OverviewUndTarget;

            //	!!!!	zu ergänze: Verbindung zwisce OverviewObjekt und Target hersctele mit Info aus OverviewUndTarget

            if (!(OverviewObjekt == ManööverAusgefüürtLezteAufgaabeParam.OverViewObjektZuBearbaiteVirt() &&
                  Target == ManööverAusgefüürtLezteAufgaabeParam.TargetZuBearbaiteVirt()))
            {
                return(null);
            }

            {
                //	Sicersctele das Manööver mit pasende Distance durcgefüürt werd.

                if (SictZuInRaumObjektManööverTypEnum.Approach == ManööverAusgefüürtLezteShipUIIndication.ManöverTyp)
                {
                    //	Für Approach werd Distance Scranke nit berüksictigt.
                }
                else
                {
                    var ManööverAusgefüürtLezteShipUIIndicationDistance = ManööverAusgefüürtLezteShipUIIndication.Distance;

                    if (!ManööverAusgefüürtLezteShipUIIndicationDistance.HasValue)
                    {
                        //	Kaine Distance aus ShipUI erkenbar.

                        return(null);
                    }

                    if (!(ManööverAusgefüürtLezteShipUIIndicationDistance <= DistanceScrankeMax &&
                          DistanceScrankeMin <= ManööverAusgefüürtLezteShipUIIndicationDistance))
                    {
                        //	Manööver hat kaine pasende Distance

                        //	!!!!	Anzupase: verglaic mit taatsäclic verfüügbaare Distance: Info in Aufgaabe Zuusctand scpaicere (z.B. verfüügbaare MenuEntry für Menu Orbit)

                        return(null);
                    }
                }
            }

            return(ManööverAusgefüürtLezteAufgaabe);
        }