예제 #1
0
        override public void AufgaabeScrit(
            Int64 Zait,
            SictAufgaabeZuusctand Aufgaabe,
            Bib3.SictIdentInt64Fabrik AufgaabeIdentFabrik,
            SictAufgaabeKombiZuusctand KombiZuusctand)
        {
            if (null == Aufgaabe)
            {
                return;
            }

            var AufgaabeParam = Aufgaabe.AufgaabeParam;

            var AufgaabeBisherMengeKomponente = Aufgaabe.MengeKomponenteBerecne();

            var AufgaabeParamZerleegungErgeebnis = AufgaabeBerecneAktueleTailaufgaabe(Aufgaabe, KombiZuusctand);

            var ReegelungDistanceScpiilraumRest = AufgaabeParamZerleegungErgeebnis.ReegelungDistanceScpiilraumRest;

            var MengeAufgaabeKomponenteParam = AufgaabeParamZerleegungErgeebnis.ListeKomponenteAufgaabeParam;
            var ZerleegungVolsctändig        = AufgaabeParamZerleegungErgeebnis.ZerleegungVolsctändig;

            if (ReegelungDistanceScpiilraumRest.HasValue)
            {
                KombiZuusctand.ListeAufgaabeReegelungDistanceFüügeAin(Aufgaabe, ReegelungDistanceScpiilraumRest);
            }

            var MengeAufgaabeKomponenteAktiiv = new List <SictAufgaabeZuusctand>();

            if (MengeAufgaabeKomponenteParam.IsNullOrEmpty())
            {
            }
            else
            {
                foreach (var AufgaabeKomponenteParam in MengeAufgaabeKomponenteParam)
                {
                    if (null == AufgaabeKomponenteParam)
                    {
                        continue;
                    }

                    var AufgaabeKomponente =
                        (null == AufgaabeBisherMengeKomponente) ? null :
                        AufgaabeBisherMengeKomponente
                        .FirstOrDefault((Kandidaat) => AufgaabeHinraicendGlaicwertigFürFortsazFürAufgaabeParamUndBeginZaitHinraicendJung(
                                            Kandidaat,
                                            AufgaabeKomponenteParam,
                                            Zait - 10000));

                    if (MengeAufgaabeKomponenteAktiiv.Contains(AufgaabeKomponente))
                    {
                        throw new ApplicationException("Vermuutlic Feeler in AufgaabeHinraicendGlaicwertigFürFortsazFürAufgaabeParam");
                    }

                    if (null == AufgaabeKomponente)
                    {
                        AufgaabeKomponente = new SictAufgaabeZuusctand(AufgaabeIdentFabrik.IdentBerecne(), AufgaabeKomponenteParam, null, Zait);
                    }

                    MengeAufgaabeKomponenteAktiiv.Add(AufgaabeKomponente);
                }
            }

            Aufgaabe.ZerleegungErgeebnisLezteZuZaitSeze(new SictWertMitZait <SictAufgaabeScritZerleegungErgeebnis>(
                                                            Zait,
                                                            new SictAufgaabeScritZerleegungErgeebnis(MengeAufgaabeKomponenteAktiiv.ToArray(), ZerleegungVolsctändig)));
        }