string ListeOptimatScritSictSerielBerecne(
            bool GbsBaumScraibe = false)
        {
            var MengeOptimatScritRepr = this.MengeOptimatScritRepr;

            var MengeOptimatScrit = (null == MengeOptimatScritRepr) ? null : MengeOptimatScritRepr.Select((Repr) => Repr.Wert.Repräsentiirte).ToArray();

            var ListeOptimatScritAbbild =
                (null == MengeOptimatScrit) ? null :
                MengeOptimatScrit
                .Select((OptimatScrit) => SictOptimatScrit.OptimatScritSictFürBerict(OptimatScrit, GbsBaumScraibe))
                .Where((Kandidaat) => null != Kandidaat)
                .OrderBy((Kandidaat) =>
            {
                var VonZiilProcessLeese = Kandidaat.VonProcessMesung;

                if (null == VonZiilProcessLeese)
                {
                    return(null);
                }

                return((Int64?)VonZiilProcessLeese.BeginZait);
            })
                .ToArray();

            var SerializerSettings = new JsonSerializerSettings();

            SerializerSettings.DefaultValueHandling = DefaultValueHandling.Ignore;

            var SictStringAbbild = JsonConvert.SerializeObject(ListeOptimatScritAbbild, Formatting.Indented, SerializerSettings);

            return(SictStringAbbild);
        }
Пример #2
0
        void OptimatScritZwiscescpaicerSezeAufAusListeTailmengeMitLeeseFertigLezte()
        {
            var ListeOptimatScrit = this.ListeOptimatScrit;

            if (null != ListeOptimatScrit)
            {
                var ListeOptimatScritLezteMitLeeseFertig =
                    ListeOptimatScrit.LastOrDefault((Kandidaat) => null != Kandidaat.VonWindowLeese && null != Kandidaat.VonProcessMesung);

                if (null != ListeOptimatScritLezteMitLeeseFertig)
                {
                    OptimatScritZwiscescpaicer = ListeOptimatScritLezteMitLeeseFertig;
                }
            }
        }
Пример #3
0
        static public bool ReprPastZuOptimatScrit(
            SictOptimatScritRepr Repr,
            SictOptimatScrit OptimatScrit)
        {
            if (null == OptimatScrit && null == Repr)
            {
                return(true);
            }

            if (null == Repr)
            {
                return(false);
            }

            return(Repr.Repräsentiirte == OptimatScrit);
        }
Пример #4
0
 public bool AingangOptimatScrit(
     SictOptimatScrit OptimatScrit)
 {
     return(base.ZuScritInfoFüügeAin(OptimatScrit));
 }
Пример #5
0
        protected bool ZuScritInfoFüügeAin(
            SictOptimatScrit OptimatScrit)
        {
            if (null == OptimatScrit)
            {
                return(false);
            }

            var NaacProcessListeWirkung = OptimatScrit.NaacProcessListeWirkung;

            if (null != NaacProcessListeWirkung)
            {
                VonNuzerMeldungNaacProcessWirkungFüügeAin(NaacProcessListeWirkung);
            }

            var OptimatScritNuzerZait = OptimatScrit.NuzerZait;

            var ScritAutomaatZuusctand = OptimatScrit.NaacNuzerBerictAutomaatZuusctand      as      SictVonOptimatMeldungZuusctand;

            var BisherAnwendungSizungIdent = this.AnwendungSizungIdent;

            var OptimatScritAnwendungSizungIdent = OptimatScrit.AnwendungSizungIdent;

            if (null == BisherAnwendungSizungIdent)
            {
                this.AnwendungSizungIdent = OptimatScritAnwendungSizungIdent;
            }
            else
            {
                if (!Bib3.Glob.SequenceEqualPerObjectEquals(BisherAnwendungSizungIdent, OptimatScritAnwendungSizungIdent))
                {
                    return(false);
                }
            }

            lock (Lock)
            {
                if (null == OptimatScrit.ProcessWindowClientRasterIdentUndSuuceHinwais)
                {
                    var ProcessWindowClientRasterIdentUndSuuceHinwais = this.ZuNuzerZaitMiliWindowClientRasterSuuceHinwaisBerecne(OptimatScritNuzerZait);

                    OptimatScrit.ProcessWindowClientRasterIdentUndSuuceHinwais = ProcessWindowClientRasterIdentUndSuuceHinwais;

                    if (null == ProcessWindowClientRasterIdentUndSuuceHinwais)
                    {
                        ListeZaitpunktOptimatScritOoneWindowClientRasterIdent.Add(OptimatScritNuzerZait);
                    }
                }

                {
                    bool ListeNaacProcessWirkungGeändert;
                    bool ListeNaacProcessWirkungVolsctändig;

                    var OptimatScritListeNaacProcessWirkung = FürOptimatScritListeNaacProcessWirkungBerecne(
                        OptimatScrit,
                        out ListeNaacProcessWirkungGeändert,
                        out ListeNaacProcessWirkungVolsctändig);

                    if (ListeNaacProcessWirkungGeändert)
                    {
                        OptimatScrit.NaacProcessListeWirkung = OptimatScritListeNaacProcessWirkung;

                        //	ZuScritInfoFüügeAin(OptimatScrit);
                    }

                    if (!ListeNaacProcessWirkungVolsctändig)
                    {
                        ListeZaitpunktOptimatScritOoneNaacProcessWirkung.Add(OptimatScritNuzerZait);
                    }
                }

                var ScritAnwendungZaitMiliNulbar = OptimatScrit.AnwendungZaitMili;

                if (ScritAnwendungZaitMiliNulbar.HasValue)
                {
                    DictZuNuzerZaitMiliAnwendungZaitMili[OptimatScritNuzerZait] = ScritAnwendungZaitMiliNulbar.Value;
                }

                Optimat.Glob.InListeOrdnetFüügeAin(
                    ListeZuVonProcessLeeseBeginZaitScritInfo,
                    (t) => t.Key,
                    new KeyValuePair <Int64, SictOptimatScrit>(
                        OptimatScritNuzerZait, OptimatScrit), OptimatScritNuzerZait);

                BerictBeginNuzerZaitMili = Bib3.Glob.Min(BerictBeginNuzerZaitMili, OptimatScritNuzerZait);
                BerictEndeNuzerZaitMili  = Bib3.Glob.Max(BerictEndeNuzerZaitMili, OptimatScritNuzerZait);

                if (null != ScritAutomaatZuusctand)
                {
                    var MengeMission = ScritAutomaatZuusctand.MengeMission;

                    if (null != MengeMission)
                    {
                        foreach (var Mission in MengeMission)
                        {
                            if (null == Mission)
                            {
                                continue;
                            }

                            var MissionBezaicnerNulbar = (Int64?)Mission.Ident;

                            if (!MissionBezaicnerNulbar.HasValue)
                            {
                                continue;
                            }

                            var MissionBezaicner = MissionBezaicnerNulbar.Value;

                            var BisherMissionMitZait = Optimat.Glob.TAD(DictZuMissionBezaicnerMissionZuusctandLezte, MissionBezaicner);

                            var BisherMissionErhalte = false;

                            if (null != BisherMissionMitZait.Wert)
                            {
                                BisherMissionErhalte = OptimatScritNuzerZait < BisherMissionMitZait.Zait;
                            }

                            if (!BisherMissionErhalte)
                            {
                                DictZuMissionBezaicnerMissionZuusctandLezte[MissionBezaicner] =
                                    new SictWertMitZait <SictMissionZuusctand>(
                                        OptimatScritNuzerZait, Mission);
                            }
                        }
                    }
                }

                return(true);
            }
        }
Пример #6
0
        public SictNaacProcessWirkung[] FürOptimatScritListeNaacProcessWirkungBerecne(
            SictOptimatScrit OptimatScrit,
            out bool ListeNaacProcessWirkungGeändert,
            out bool ListeNaacProcessWirkungVolsctändig)
        {
            ListeNaacProcessWirkungGeändert = false;

            if (null == OptimatScrit)
            {
                ListeNaacProcessWirkungVolsctändig = true;
                return(null);
            }

            var VorsclaagListeWirkung = OptimatScrit.VorsclaagListeWirkung;

            if (null == VorsclaagListeWirkung)
            {
                ListeNaacProcessWirkungVolsctändig = true;
                return(null);
            }

            var BisherNaacProcessListeWirkung = OptimatScrit.NaacProcessListeWirkung;

            var NaacProcessListeWirkungFeelendVorsclaagIdent = new List <Int64>();

            var NoiNaacProcessListeWirkung = new List <SictNaacProcessWirkung>();

            if (null != VorsclaagListeWirkung)
            {
                foreach (var KandidaatVorsclaagWirkung in VorsclaagListeWirkung)
                {
                    if (null == KandidaatVorsclaagWirkung)
                    {
                        continue;
                    }

                    var KandidaatVorsclaagWirkungIdent = (Int64?)KandidaatVorsclaagWirkung.Ident;

                    if (!KandidaatVorsclaagWirkungIdent.HasValue)
                    {
                        continue;
                    }

                    if (null != BisherNaacProcessListeWirkung)
                    {
                        var BisherNaacProcessWirkung =
                            BisherNaacProcessListeWirkung.FirstOrDefault((Kandidaat) => (null == Kandidaat ? null : Kandidaat.VorsclaagWirkungIdent) == KandidaatVorsclaagWirkungIdent);

                        if (null != BisherNaacProcessWirkung)
                        {
                            //	Zu diise Vorsclaag isc scun Wirkung aingetraage.
                            continue;
                        }
                    }

                    SictNaacProcessWirkung ZuVorsclaagNaacProcessWirkung = null;

                    DictVonVorsclaagWirkungIdentZuNaacProcessWirkung.TryGetValue(KandidaatVorsclaagWirkungIdent.Value, out ZuVorsclaagNaacProcessWirkung);

                    if (null != ZuVorsclaagNaacProcessWirkung)
                    {
                        NoiNaacProcessListeWirkung.Add(ZuVorsclaagNaacProcessWirkung);
                    }
                    else
                    {
                        NaacProcessListeWirkungFeelendVorsclaagIdent.Add(KandidaatVorsclaagWirkungIdent.Value);
                    }
                }
            }

            ListeNaacProcessWirkungVolsctändig = NaacProcessListeWirkungFeelendVorsclaagIdent.Count < 1;

            if (0 < NoiNaacProcessListeWirkung.Count)
            {
                ListeNaacProcessWirkungGeändert = true;

                return(Bib3.Glob.ListeEnumerableAgregiirt(
                           new IEnumerable <SictNaacProcessWirkung>[] { BisherNaacProcessListeWirkung, NoiNaacProcessListeWirkung }).ToArray());
            }
            else
            {
                return(BisherNaacProcessListeWirkung);
            }
        }
Пример #7
0
        /*
         * 2014.07.14
         *
         * Ersaz durc SictNaacNuzerBerictAutomaatZuusctand NaacNuzerBerictAutomaatZuusctand
         *
         * public SictAusOptimatScritNaacNuzerMeldung[] NaacNuzerMengeMeldung
         * {
         *      get
         *      {
         *              var Repräsentiirte = this.Repräsentiirte;
         *
         *              if (null == Repräsentiirte)
         *              {
         *                      return null;
         *              }
         *
         *              return Repräsentiirte.NaacNuzerMengeMeldung;
         *      }
         * }
         *
         * public System.Windows.Visibility PanelMengeMeldungVisibility
         * {
         *      get
         *      {
         *              var PanelMengeMeldungText = this.PanelMengeMeldungText;
         *
         *              if (null == PanelMengeMeldungText)
         *              {
         *                      return System.Windows.Visibility.Collapsed;
         *              }
         *
         *              if (PanelMengeMeldungText.Length	< 1)
         *              {
         *                      return System.Windows.Visibility.Collapsed;
         *              }
         *
         *              return System.Windows.Visibility.Visible;
         *      }
         * }
         *
         * public string PanelMengeMeldungText
         * {
         *      get
         *      {
         *              var NaacNuzerMengeMeldung = this.NaacNuzerMengeMeldung;
         *
         *              if (null == NaacNuzerMengeMeldung)
         *              {
         *                      return null;
         *              }
         *
         *              var	NaacNuzerMengeMeldungString	=
         *                      NaacNuzerMengeMeldung
         *                      .Select((Meldung) => Meldung.MeldungString)
         *                      .Where((MeldungString) => null	!= MeldungString)
         *                      .ToArray();
         *
         *              return string.Join(Environment.NewLine, NaacNuzerMengeMeldungString);
         *      }
         * }
         * */

        public SictOptimatScritRepr(
            SictOptimatScrit Repräsentiirte)
        {
            this.Repräsentiirte = Repräsentiirte;
        }
Пример #8
0
        void AuswaalZaitpunktReprAktualisiire()
        {
            var Auswert            = this.Auswert;
            var AuswaalPunktNulbar = ZaitlaisteAuswaalGlobaal.AuswaalPunkt;

            SictOptimatScrit OptimatScrit         = null;
            SictOptimatScrit OptimatScritFolgende = null;

            VonProcessMesung <VonSensorikMesung> OptimatScritVonProcessLeese         = null;
            VonProcessMesung <VonSensorikMesung> OptimatScritFolgendeVonProcessLeese = null;
            SictVonOptimatMeldungZuusctand       OptimatScritAutomaatZuusctand       = null;

            SictNaacProcessWirkung[] OptimatScritNaacProcessListeWirkung = null;

            SictAusGbsLocationInfo OptimatScritAutomaatZuusctandLocation = null;
            ShipState OptimatScritAutomaatZuusctandCharShip             = null;
            string    OptimatScritAutomaatZuusctandFittingInfoAgrString = null;

            Int64?NuzerScnacpscusZaitMili = null;

            var    OptimatScritZaitaintailungListeKomponenteMitBetraag = new List <KeyValuePair <Bib3.FCL.GBS.SictDiagramProportioonKomponente, int> >();
            string AuswaalZaitpunktEveOnlineClientClockSictString      = null;

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

                if (!AuswaalPunktNulbar.HasValue)
                {
                    return;
                }

                var ListeScnapscusZait =
                    Auswert.ZuNuzerZaitMiliListeScritInfoNääxte(
                        AuswaalPunktNulbar.Value, 1, 1, true);

                if (null != ListeScnapscusZait)
                {
                    OptimatScrit         = ListeScnapscusZait.FirstOrDefault((Kandidaat) => 0 == Kandidaat.Value).Key;
                    OptimatScritFolgende = ListeScnapscusZait.FirstOrDefault((Kandidaat) => 1 == Kandidaat.Value).Key;
                }

                if (null != OptimatScrit)
                {
                    NuzerScnacpscusZaitMili = OptimatScrit.NuzerZait;

                    OptimatScritVonProcessLeese         = OptimatScrit.VonProcessMesung;
                    OptimatScritAutomaatZuusctand       = OptimatScrit.NaacNuzerBerictAutomaatZuusctand as SictVonOptimatMeldungZuusctand;
                    OptimatScritNaacProcessListeWirkung = OptimatScrit.NaacProcessListeWirkung;
                }

                if (null != OptimatScritFolgende)
                {
                    OptimatScritFolgendeVonProcessLeese = OptimatScritFolgende.VonProcessMesung;
                }

                if (NuzerScnacpscusZaitMili.HasValue)
                {
                    var EveOnlineClientClockSekunde = Auswert.ZuNuzerZaitMiliBerecneEveOnlineClientClockSekunde(NuzerScnacpscusZaitMili.Value);

                    if (EveOnlineClientClockSekunde.HasValue)
                    {
                        AuswaalZaitpunktEveOnlineClientClockSictString = EveClientClockSictStringSekundeBerecneAusInTaagSekunde(EveOnlineClientClockSekunde.Value);
                    }
                }

                if (null != OptimatScritAutomaatZuusctand)
                {
                    OptimatScritAutomaatZuusctandLocation             = OptimatScritAutomaatZuusctand.CurrentLocation;
                    OptimatScritAutomaatZuusctandCharShip             = OptimatScritAutomaatZuusctand.ShipZuusctand;
                    OptimatScritAutomaatZuusctandFittingInfoAgrString = OptimatScritAutomaatZuusctand.FittingInfoAgrString;
                }

                if (null != OptimatScritVonProcessLeese)
                {
                    OptimatScritZaitaintailungListeKomponenteMitBetraag.Add(
                        new KeyValuePair <Bib3.FCL.GBS.SictDiagramProportioonKomponente, int>(
                            new Bib3.FCL.GBS.SictDiagramProportioonKomponente("read from process", OptimatScritZaitaintailungVonProcessLeeseBrush),
                            (int)(OptimatScritVonProcessLeese.Dauer)));

                    if (null != OptimatScritNaacProcessListeWirkung)
                    {
                        var OptimatScritNaacProcessListeWirkungFrüühesteBeginZait =
                            OptimatScritNaacProcessListeWirkung.DefaultIfEmpty()
                            .Min((Wirkung) => ((null == Wirkung) ? null : Wirkung.BeginZaitMili) ?? Int64.MaxValue);

                        var OptimatScritNaacProcessListeWirkungScpäätesteEndeZait =
                            OptimatScritNaacProcessListeWirkung.DefaultIfEmpty()
                            .Min((Wirkung) => ((null == Wirkung) ? null : Wirkung.EndeZaitMili) ?? Int64.MinValue);

                        var OptimatScritVonVonProcessLeeseBisNaacProcessListeWirkungDauer =
                            OptimatScritNaacProcessListeWirkungFrüühesteBeginZait -
                            (OptimatScritVonProcessLeese.EndeZait);

                        var OptimatScritNaacProcessListeWirkungDauer =
                            OptimatScritNaacProcessListeWirkungScpäätesteEndeZait -
                            OptimatScritNaacProcessListeWirkungFrüühesteBeginZait;

                        if (OptimatScritVonProcessLeese.EndeZait <= OptimatScritNaacProcessListeWirkungFrüühesteBeginZait &&
                            OptimatScritNaacProcessListeWirkungFrüühesteBeginZait <= OptimatScritNaacProcessListeWirkungScpäätesteEndeZait)
                        {
                            OptimatScritZaitaintailungListeKomponenteMitBetraag.Add(
                                new KeyValuePair <Bib3.FCL.GBS.SictDiagramProportioonKomponente, int>(
                                    new Bib3.FCL.GBS.SictDiagramProportioonKomponente("from (read from process).end to input.begin",
                                                                                      OptimatScritZaitaintailungVonProcessLeeseBisNaacProcessWirkungBrush),
                                    (int)(OptimatScritVonVonProcessLeeseBisNaacProcessListeWirkungDauer)));

                            OptimatScritZaitaintailungListeKomponenteMitBetraag.Add(
                                new KeyValuePair <Bib3.FCL.GBS.SictDiagramProportioonKomponente, int>(
                                    new Bib3.FCL.GBS.SictDiagramProportioonKomponente("input to process", OptimatScritZaitaintailungNaacProcessWirkungBrush),
                                    (int)(OptimatScritNaacProcessListeWirkungDauer)));

                            if (null != OptimatScritFolgendeVonProcessLeese)
                            {
                                var VonNaacProcessInputBisNääxteScritVonProcessLeeseDauer =
                                    OptimatScritFolgendeVonProcessLeese.BeginZait - OptimatScritNaacProcessListeWirkungScpäätesteEndeZait;

                                if (0 <= VonNaacProcessInputBisNääxteScritVonProcessLeeseDauer)
                                {
                                    OptimatScritZaitaintailungListeKomponenteMitBetraag.Add(
                                        new KeyValuePair <Bib3.FCL.GBS.SictDiagramProportioonKomponente, int>(
                                            new Bib3.FCL.GBS.SictDiagramProportioonKomponente("from input.end to (next step.(read from process)).begin", OptimatScritZaitaintailungVonNaacProcessWirkungBisVonProcessLeeseBrush),
                                            (int)(VonNaacProcessInputBisNääxteScritVonProcessLeeseDauer)));
                                }
                            }
                        }
                    }
                }
            }
            finally
            {
                foreach (var Erwaiterung in ListeErwaiterung)
                {
                    if (null == Erwaiterung)
                    {
                        continue;
                    }

                    System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback((t) => Erwaiterung.AuswaalZaitpunktSeze(AuswaalPunktNulbar)));
                }

                DictZuAnwendungZaitMiliScnapcusAutomaatZuusctandSictJson.BescrankeEntferneLängerNitVerwendete(10);

                ScnapcusReprWindowClientRasterSezeFürNuzerZaitMili(NuzerScnacpscusZaitMili);

                AuswaalZaitpunktCharLocationInspekt.Repräsentiire(OptimatScritAutomaatZuusctandLocation);
                AuswaalZaitpunktShipInspekt.Repräsentiire(OptimatScritAutomaatZuusctandCharShip);
                TextBoxAuswaalZaitpunktFittingInspekt.Text = OptimatScritAutomaatZuusctandFittingInfoAgrString;

                TextBoxScnapcusAuswaalZaitpunktInspekt.Text = Optimat.Glob.SictStringTausenderGetrent(NuzerScnacpscusZaitMili, " ");
                TextBoxScnapcusAuswaalZaitpunktInspektEveClientClock.Text = AuswaalZaitpunktEveOnlineClientClockSictString;

                AuswaalZaitpunktOptimatScritZaitaintailung.Repräsentiire(OptimatScritZaitaintailungListeKomponenteMitBetraag.ToArray());
            }
        }
Пример #9
0
        void BerictHauptKümere()
        {
            var ZaitMili = Bib3.Glob.StopwatchZaitMikroSictInt() / 1000;

            string ZiilVerzaicnisPfaad = null;

            var BerictKeteGliidSerialisLezteMitDataiPfaad = this.BerictKeteGliidSerialisLezteMitDataiPfaad;

            var GbsAingaabeKonfig = this.GbsAingaabeKonfig;

            if (null != GbsAingaabeKonfig)
            {
                ZiilVerzaicnisPfaad = GbsAingaabeKonfig.BerictHauptPersistVerzaicnisPfaad;
            }

            if (null == ZiilVerzaicnisPfaad)
            {
                return;
            }

            if (ZiilVerzaicnisPfaad.Length < 1)
            {
                return;
            }

            var BerictHauptLezteAlterMili = ZaitMili - BerictHauptMengeDataiLezteZaitMili;

            if (BerictHauptLezteAlterMili / 1000 < BerictHauptMengeDataiZaitDistanzScrankeMin)
            {
                return;
            }

            BerictHauptMengeDataiLezteZaitMili = ZaitMili;

            try
            {
                var ZiilVerzaicnis = new DirectoryInfo(ZiilVerzaicnisPfaad);

                if (!ZiilVerzaicnis.Exists)
                {
                    ZiilVerzaicnis.Create();
                }
            }
            catch (System.Exception Exception)
            {
                return;
            }

            var BerictKeteGliidAlgemain = new SictBerictKeteGliid(ZaitMili * 1000);

            if (null != BerictKeteGliidSerialisLezteMitDataiPfaad.Key)
            {
                var VorherGliidDatai = new SictDataiIdentUndSuuceHinwais(
                    BerictKeteGliidSerialisLezteMitDataiPfaad.Key.SerialisHashSHA1,
                    new SictDataiSuuceHinwais[] { new SictDataiSuuceHinwais(BerictKeteGliidSerialisLezteMitDataiPfaad.Value) });

                BerictKeteGliidAlgemain.VorherGliidDatai = VorherGliidDatai;
            }

            //	!!!!	Temp Scpez für Nuzer und Server in glaicem Prozes	!!!!
            Int64?ZaitVonNuzerNaacServerVersazMili = null;

            var Nuzer = this.Nuzer;

            if (null != Nuzer.Key)
            {
                var NuzerMesungAnwendungServerZaitMikroNulbar = Nuzer.Key.MesungAnwendungServerZaitMikro;

                if (NuzerMesungAnwendungServerZaitMikroNulbar.HasValue)
                {
                    var NuzerMesungAnwendungServerZaitMikro = NuzerMesungAnwendungServerZaitMikroNulbar.Value;

                    ZaitVonNuzerNaacServerVersazMili = (NuzerMesungAnwendungServerZaitMikro.Wert - NuzerMesungAnwendungServerZaitMikro.Zait) / 1000;
                }
            }

            var VonServerMengeBerictZuScraibe =
                Bib3.Extension.SelectNullable(
                    NaacDataiBerictNaacBerictVonAnwendungListeNaacrict,
                    (VonAnwendungNaacrict) => new SictVonOptimatNaacrict(
                        VonAnwendungNaacrict.AnwendungServerZaitMili,
                        VonAnwendungNaacrict.AnwendungServerTaagBeginZaitMili,
                        null))
                .ToArrayNullable();

            NaacDataiBerictNaacBerictVonAnwendungListeNaacrict.Clear();

            var BerictListeWindowClientRasterGescriibe = this.NaacDataiBerictListeWindowClientRasterGescriibe.ToArray();

            var ListeOptimatScritNaacLezteBerict =
                ListeVonServerMeldungAbbildOptimatScrit
                .SkipWhile((OptimatScrit) => !(BerictHauptOptimatScritGescriibeLezteZaitMili < OptimatScrit.NuzerZait))
                .ToArray();

            byte[] AnwendungSizungIdent = null;

            var ListeOptimatScritZuScraibe = new List <SictOptimatScrit>();

            foreach (var OptimatScrit in ListeOptimatScritNaacLezteBerict)
            {
                if (ListeOptimatScritZuScraibe.Count < 1)
                {
                    AnwendungSizungIdent = OptimatScrit.AnwendungSizungIdent;
                }
                else
                {
                    if (!Bib3.Glob.SequenceEqualPerObjectEquals(AnwendungSizungIdent, OptimatScrit.AnwendungSizungIdent))
                    {
                        //	AnwendungSizungIdent des Optimat Scrit isc unglaic AnwendungSizungIdent des frühescte Optimat Scrit in Liste

                        //	Optimat Scrit aus versciidene Sizunge sole nit in aine Datai zusamegefast werde, daher hiir Abbruc Liste
                        break;
                    }
                }

                if (null == OptimatScrit.NaacProcessListeWirkung)
                {
                    var ScritAlterMili = ZaitMili - OptimatScrit.NuzerZait;

                    if (!(1e+4 < ScritAlterMili))
                    {
                        break;
                    }
                }

                ListeOptimatScritZuScraibe.Add(OptimatScrit);
            }

            var ListeOptimatScritZuScraibeAbbild =
                ListeOptimatScritZuScraibe
                .Select((OptimatScrit) => SictOptimatScrit.OptimatScritSictFürBerict(OptimatScrit, false))
                .ToArray();

            var AnwendungSizungIdentSictString =
                Bib3.Glob.SictZaalSictStringBaasis16(AnwendungSizungIdent) ?? "null";

            var BerictKeteGliidScpez = new Optimat.EveOnline.Berict.SictBerictKeteGliid(
                ZaitVonNuzerNaacServerVersazMili,
                ListeOptimatScritZuScraibeAbbild,
                VonServerMengeBerictZuScraibe,
                BerictListeWindowClientRasterGescriibe);

            if (null != ListeOptimatScritZuScraibe)
            {
                foreach (var OptimatScrit in ListeOptimatScritZuScraibe.Reversed())
                {
                    /*
                     * 2014.11.07
                     *
                     * var OptimatScritVonZiilProcessLeeseBeginZaitMili = SictOptimatScrit.AusOptimatScritVonProcessLeeseBeginZaitMili(OptimatScrit);
                     *
                     * if (OptimatScritVonZiilProcessLeeseBeginZaitMili.HasValue)
                     * {
                     *      BerictHauptOptimatScritGescriibeLezteZaitMili = OptimatScritVonZiilProcessLeeseBeginZaitMili.Value;
                     *      break;
                     * }
                     * */

                    BerictHauptOptimatScritGescriibeLezteZaitMili = OptimatScrit.NuzerZait;
                    break;
                }
            }

            this.NaacDataiBerictListeWindowClientRasterGescriibe.Clear();

            var BerictKeteGliid = new Optimat.SictBerictKeteGliidBehältnisScpez <Optimat.EveOnline.Berict.SictBerictKeteGliid>(BerictKeteGliidAlgemain, BerictKeteGliidScpez);

            var BerictKeteGliidSerialis = new SictBerictKeteGliidSerialis(BerictKeteGliid);

            var ZaitSictKalenderString = Bib3.Glob.SictwaiseKalenderString(Bib3.Glob.SictDateTimeVonStopwatchZaitMili(ZaitMili), ".", 0);

            Int64 BerictHauptListeDataiLezteIndex = 0;

            if (Bib3.Glob.SequenceEqualPerObjectEquals(BerictHauptFürASidListeDataiLezteIndex.Key, AnwendungSizungIdent))
            {
                BerictHauptListeDataiLezteIndex = BerictHauptFürASidListeDataiLezteIndex.Value;
            }

            var VerzaicnisNaame = "Berict[ASId=" + AnwendungSizungIdentSictString + "]";

            var FürAnwendungSizungVerzaicnisPfaad = ZiilVerzaicnisPfaad + Path.DirectorySeparatorChar + VerzaicnisNaame;

            var Verzaicnis = new DirectoryInfo(FürAnwendungSizungVerzaicnisPfaad);

            if (!Verzaicnis.Exists)
            {
                Verzaicnis.Create();
            }

            var DataiNaame = ZaitSictKalenderString + ".Berict.Haupt[ASId=" + AnwendungSizungIdentSictString + ",DI=" + BerictHauptListeDataiLezteIndex.ToString() + "]";

            var DataiPfaad = FürAnwendungSizungVerzaicnisPfaad + Path.DirectorySeparatorChar + DataiNaame;

            bool ScraibeDataiErfolg;

            System.Exception ScraibeDataiException;

            Bib3.Glob.ScraibeInhaltNaacDataiPfaad(DataiPfaad, BerictKeteGliidSerialis.SerialisSictListeOktet, out ScraibeDataiErfolg, out ScraibeDataiException);

            BerictHauptFürASidListeDataiLezteIndex = new KeyValuePair <byte[], Int64>(AnwendungSizungIdent, BerictHauptListeDataiLezteIndex + 1);

            this.BerictKeteGliidSerialisLezteMitDataiPfaad = new KeyValuePair <SictBerictKeteGliidSerialis, string>(BerictKeteGliidSerialis, DataiNaame);

            if (null != ScraibeDataiException)
            {
                throw new ApplicationException("Scraibe Datai Feelsclaag", ScraibeDataiException);
            }
        }
        /// <summary>
        /// Extrahiirt Info aus AutomaatZuusctand und scpaicert diise naac Dict.
        /// </summary>
        /// <param name="AutomaatZuusctand"></param>
        void ZuAutomaatZuusctandVonZaitMiliAblaitungScpaicere(
            SictWertMitZait <Optimat.ScpezEveOnln.SictAutomatZuusctand> AutomaatZuusctand)
        {
            if (null == AutomaatZuusctand.Wert)
            {
                return;
            }

            var ReferenzZait = AutomaatZuusctand.Wert.NuzerZaitMili;

            var ScnapscusAuswertungErgeebnis = AutomaatZuusctand.Wert.ListeScnapscusLezteAuswertungErgeebnisNaacSimu;

            var ListeZuZaitVonNuzerMeldungNaacProcessWirkung = AutomaatZuusctand.Wert.ListeZuZaitVonNuzerMeldungNaacProcessWirkung;

            if (null != ListeZuZaitVonNuzerMeldungNaacProcessWirkung)
            {
                base.VonNuzerMeldungNaacProcessWirkungFüügeAin(
                    ListeZuZaitVonNuzerMeldungNaacProcessWirkung
                    .Select((Element) => Element.Wert));
            }

            var FittingUndShipZuusctand = AutomaatZuusctand.Wert.FittingUndShipZuusctand;

            /*
             * 2014.10.15
             *
             * var OptimatScritAktuel = AutomaatZuusctand.Wert.OptimatScritAktuel;
             *
             * var OptimatScritVonProcessLeese =
             *      (null	== OptimatScritAktuel)	?	null	:
             *      OptimatScritAktuel.VonZiilProcessLeeseSictAuswert ?? OptimatScritAktuel.VonZiilProcessLeese;
             *
             * var OptimatScritVonProcessLeeseBeginZaitNulbar = (null == OptimatScritVonProcessLeese) ? null : OptimatScritVonProcessLeese.BeginZait;
             *
             * if (!OptimatScritVonProcessLeeseBeginZaitNulbar.HasValue)
             * {
             *      //	Oone zaitlice Ainordnung werd nix gescpaicert.
             *      return;
             * }
             *
             * var OptimatScritVonProcessLeeseBeginZait = OptimatScritVonProcessLeeseBeginZaitNulbar.Value;
             * */

            var OptimatScritAktuel = new SictOptimatScrit(AutomaatZuusctand.Wert.NuzerZaitMili, null);

            var OptimatScritAbbild = SictOptimatScrit.OptimatScritSictFürBerict(OptimatScritAktuel, false);

            OptimatScritAbbild.AnwendungZaitMili = OptimatScritAbbild.AnwendungZaitMili ?? AutomaatZuusctand.Wert.NuzerZaitMili;

            /*
             * 2014.10.15
             *
             * if (null != OptimatScritAktuel)
             * {
             *      if (null != OptimatScritVonProcessLeese)
             *      {
             *              var VonProcessLeeseBeginZaitMili = OptimatScritVonProcessLeese.BeginZaitMili;
             *
             *              if (VonProcessLeeseBeginZaitMili.HasValue)
             *              {
             *                      DictZuNuzerZaitMiliAnwendungZaitMili[VonProcessLeeseBeginZaitMili.Value] = AutomaatZuusctand.Zait;
             *              }
             *      }
             * }
             * */

            if (null != OptimatScritAktuel)
            {
                DictZuNuzerZaitMiliAnwendungZaitMili[ReferenzZait] = AutomaatZuusctand.Zait;
            }

            if (null != OptimatScritAbbild)
            {
                OptimatScritAbbild.AnwendungSizungIdent = AutomaatZuusctand.Wert.AnwendungSizungIdent;

                var AutomaatZuusctandMengeZuClrTypeMengeInstanceAnzaal =
                    Bib3.RefNezDiferenz.SictRefNezDiferenz.ZuRefNezMengeClrTypeInstanceAnzaalBerecne(
                        new object[] { AutomaatZuusctand.Wert },
                        Optimat.ScpezEveOnln.SictAutomat.ZuusctandSictDiferenzSictParam.TypeBehandlungRictliinieMitScatescpaicer);

                /*
                 * 2015.09.06
                 *
                 * OptimatScritAbbild.AutomaatZuusctandMengeZuClrTypeMengeInstanceAnzaal =
                 *      AutomaatZuusctandMengeZuClrTypeMengeInstanceAnzaal.ToArrayNullable();
                 */

                var ScritNaacNuzerBerictAutomaatZuusctand = OptimatScritAbbild.NaacNuzerBerictAutomaatZuusctand;

                if (null == ScritNaacNuzerBerictAutomaatZuusctand)
                {
                    //	OptimatScritAbbild.NaacNuzerBerictAutomaatZuusctand = ScritNaacNuzerBerictAutomaatZuusctand = new SictNaacNuzerBerictAutomaatZuusctand();

                    OptimatScritAbbild.NaacNuzerBerictAutomaatZuusctand = ScritNaacNuzerBerictAutomaatZuusctand = AutomaatZuusctand.Wert.NaacNuzerMeldungZuusctand;
                }
            }

            lock (Lock)
            {
                DictZuAutomaatZaitMiliOptimatScrit[ReferenzZait] = OptimatScritAbbild;
            }

            base.ZuScritInfoFüügeAin(OptimatScritAbbild);

            var AgentUndMissionInfo = AutomaatZuusctand.Wert.AgentUndMission;

            if (null != AgentUndMissionInfo)
            {
                var MengeMission = AgentUndMissionInfo.MengeMission;

                if (null != MengeMission)
                {
                    foreach (var Mission in MengeMission)
                    {
                        if (null == Mission)
                        {
                            continue;
                        }

                        {
                            //	Temp Verzwaigung Debug

                            if (Mission.EndeZaitMili().HasValue)
                            {
                            }
                        }

                        var MissionBezaicnerNulbar = Mission.Ident();

                        if (!MissionBezaicnerNulbar.HasValue)
                        {
                            continue;
                        }

                        var MissionBezaicner = MissionBezaicnerNulbar.Value;

                        var BisherMissionMitZait = Optimat.Glob.TAD(DictVonMissionBezaicnerMissionZuusctandLezte, MissionBezaicner);

                        var BisherMissionErhalte = false;

                        if (null != BisherMissionMitZait.Wert)
                        {
                            BisherMissionErhalte = AutomaatZuusctand.Zait < BisherMissionMitZait.Zait;
                        }

                        if (BisherMissionErhalte)
                        {
                            continue;
                        }

                        DictVonMissionBezaicnerMissionZuusctandLezte[MissionBezaicner] =
                            new SictWertMitZait <SictMissionZuusctand>(
                                AutomaatZuusctand.Zait, Mission);
                    }
                }
            }
        }