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)); }
abstract public SictAufgaabeZuusctand ManööverAusgefüürtLezteAufgaabeBerecne(SictOverViewObjektZuusctand OverviewObjekt, SictTargetZuusctand Target, SictZuInRaumObjektManööverTypEnum ManööverTyp, long?DistanceScrankeMin = null, long?DistanceScrankeMax = null, bool BedingungNocAktiiv = false);
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); }