static public UINodeInfoInTree SictAuswert( this GbsAstInfo gbsBaum) { if (null == gbsBaum) { return(null); } var GbsBaumScpez = SictRefNezKopii.ObjektKopiiErsctele( gbsBaum, null, new Bib3.RefBaumKopii.Param(null, KonvertGbsAstInfoRictliinieMitScatescpaicer), null, null) as UINodeInfoInTree; if (null == GbsBaumScpez) { return(null); } int InBaumAstIndexZääler = 0; GbsBaumScpez.AbgelaiteteAigescafteBerecne(ref InBaumAstIndexZääler); return(GbsBaumScpez); }
static public VonSensorikMesung SensorikScnapscusKonstrukt( this Optimat.EveOnline.GbsAstInfo GbsBaum) { if (null == GbsBaum) { return(null); } /* * 2015.03.13 * * var GbsBaumScpez = GbsBaum.TypeKonvertNewtonsoftJson<SictGbsAstInfoSictAuswert>(); * */ var GbsBaumScpez = SictRefNezKopii.ObjektKopiiErsctele( GbsBaum, null, new SictRefBaumKopiiParam(null, KonvertGbsAstInfoRictliinieMitScatescpaicer), null, null) as SictGbsAstInfoSictAuswert; if (null == GbsBaumScpez) { return(null); } int InBaumAstIndexZääler = 0; GbsBaumScpez.AbgelaiteteAigescafteBerecne(ref InBaumAstIndexZääler); var Auswert = new SictAuswertGbsAgr(GbsBaumScpez); Auswert.Berecne(); return(Auswert.AuswertErgeebnis); }
public void Berecne( Func <Int64, SictBerictDataiIdentInDsInfo> FunkZuBerictScritIndexDataiIdent, Func <string, byte[]> FunkZuDataiPfaadDataiInhalt, // Func<Int64, SictWertMitZait<Optimat.Anwendung.RefNezDiferenz.SictRefNezDiferenzScritSictJson>> FunkZuBerictScritIndexBerictScritBerecne, Int64 BerecnungEndeAnwendungZaitMili) { while (true) { var ScritLezteAutomaatZuusctand = InternListeZuZaitAutomaatZuusctand.LastOrDefault().Wert; if (null != ScritLezteAutomaatZuusctand) { if (BerecnungEndeAnwendungZaitMili <= ScritLezteAutomaatZuusctand.NuzerZaitMili) { break; } } if (null == FunkZuBerictScritIndexDataiIdent) { return; } if (null == FunkZuDataiPfaadDataiInhalt) { return; } var ScritIndex = (ScritVerwertetLezteIndex + 1) ?? BeginBerictScritIndex; var BerictScritDataiIdent = FunkZuBerictScritIndexDataiIdent(ScritIndex); if (null == BerictScritDataiIdent.DataiPfaad) { return; } var DataiInhalt = FunkZuDataiPfaadDataiInhalt(BerictScritDataiIdent.DataiPfaad); using (var ZipArchive = new System.IO.Compression.ZipArchive(new MemoryStream(DataiInhalt), System.IO.Compression.ZipArchiveMode.Read)) { var MengeEntry = ZipArchive.Entries; if (null != MengeEntry) { foreach (var Entry in MengeEntry) { using (var EntryStream = Entry.Open()) { var EntryInhalt = Optimat.Glob.AusStreamLeese(EntryStream); var EntrySictUTF8 = Encoding.UTF8.GetString(EntryInhalt); var EntrySictSctrukt = SictBerictAusDsAuswert.AusStringVonAnwendungBerictBerecne(EntrySictUTF8); // !!!! Hiir werd davon ausgegange das MengeAutomaatZuusctandSictSeriel jewails komplete Zuusctand (Diferenz von 0) enthalte. var MengeAutomaatZuusctandSictSeriel = EntrySictSctrukt.MengeAutomaatZuusctandMitZait ?? EntrySictSctrukt.MengeAutomaatZuusctandDiferenzScritMitZait; if (null != MengeAutomaatZuusctandSictSeriel) { foreach (var AutomaatZuusctandSictSerielMitZait in MengeAutomaatZuusctandSictSeriel) { var AutomaatZuusctandSictSeriel = AutomaatZuusctandSictSerielMitZait.Wert; var ScritIndexNulbar = AutomaatZuusctandSictSeriel.ScritIndex; if (!ScritIndexNulbar.HasValue) { continue; } if (ScritVerwertetLezteIndex.HasValue) { var AutomaatZuusctandBerictScritErwartetIndex = (ScritVerwertetLezteIndex + 1) ?? 0; if (!(AutomaatZuusctandBerictScritErwartetIndex == ScritIndexNulbar)) { continue; } } ScritVerwertetLezteIndex = ScritIndexNulbar; Optimat.ScpezEveOnln.SictAutomatZuusctand AutomaatZuusctandKopii = null; try { var AutomaatZuusctandBerictScritDiferenz = AutomaatZuusctandSictSeriel; var ScritSume = BerictSictSume.BerecneScritSumeListeWurzelRefClrUndErfolg( AutomaatZuusctandBerictScritDiferenz, ZiilMemberExistentNictIgnoriire); if (null == ScritSume) { continue; } if (!ScritSume.Volsctändig) { continue; } var ScritSumeListeObjektReferenzClr = ScritSume.ListeWurzelRefClr; if (null == ScritSumeListeObjektReferenzClr) { continue; } var AutomaatZuusctand = (Optimat.ScpezEveOnln.SictAutomatZuusctand) ScritSumeListeObjektReferenzClr.FirstOrDefault(); if (null == AutomaatZuusctand) { continue; } /* * 2015.00.04 * * Kopii nit meer durc SictRefNezKopii mööglic da Dictionary<,> verwendet werd. * * AutomaatZuusctandKopii = SictRefNezKopii.ObjektKopiiErsctele(AutomaatZuusctand, null, null); * */ /* * 2015.00.06 * * Kopii wiider durc SictRefNezKopii mööglic da SictRefNezKopii naacgerüsct wurd um Verhalte von TypeBehandlungRictliinie RefNezDif zu verwende. * * AutomaatZuusctandKopii = RefNezDiferenz.SictRefNezSume.ObjektKopiiBerecne(AutomaatZuusctand, * RefNezDiferenz.NewtonsoftJson.SictMengeTypeBehandlungRictliinieNewtonsoftJson.KonstruktSictParam()); * */ AutomaatZuusctandKopii = SictRefNezKopii.ObjektKopiiErsctele(AutomaatZuusctand, null, null); } finally { InternListeZuZaitAutomaatZuusctand.Add( new SictWertMitZait <Optimat.ScpezEveOnln.SictAutomatZuusctand>( AutomaatZuusctandSictSerielMitZait.Zait, AutomaatZuusctandKopii)); } } } } } } } } }
public void Berecne( out System.Exception LaadeDataiException, int?VerwertungMengeDataiAnzaalScranke) { LaadeDataiException = null; var BerictVerzaicnisPfaad = this.BerictHauptVerzaicnisPfaad; var BerictWindowClientRasterVerzaicnisPfaad = this.BerictWindowClientRasterVerzaicnisPfaad; var MengeAutomaatZuusctandScnapscusAngefordertZaitMili = this.MengeAutomaatZuusctandScnapscusAngefordertZaitMili; var MengeAutomaatZuusctandScnapscusAngefordertAuswert = this.MengeAutomaatZuusctandScnapscusAngefordertAuswert; var WorkaroundAusBerictBeginListeScritAnzaalUnvolsctändigAnzaal = this.WorkaroundAusBerictBeginListeScritAnzaalUnvolsctändigAnzaal; var BerecneLezteListeAutomaatZuusctand = new List <KeyValuePair <Int64, Optimat.ScpezEveOnln.SictAutomatZuusctand> >(); try { if (null != MengeAutomaatZuusctandScnapscusAngefordertZaitMili) { var MengeAutomaatZuusctandScnapscusVorhandeZaitMili = DictVonAutomaatZaitMiliAutomaatZuusctand.MengeKeyBerecne(); var MengeAutomaatZuusctandScnapscusNocZuLaadeZaitMili = MengeAutomaatZuusctandScnapscusAngefordertZaitMili .Where((KandidaatNocZuLaade) => !MengeAutomaatZuusctandScnapscusVorhandeZaitMili.Contains(KandidaatNocZuLaade)).ToArray(); if (0 < MengeAutomaatZuusctandScnapscusNocZuLaadeZaitMili.Length) { var AutomaatZuusctandScnapscusNocZuLaadeZaitMili = MengeAutomaatZuusctandScnapscusNocZuLaadeZaitMili.OrderBy((t) => t).FirstOrDefault(); var BeginBerictScritIndex = Math.Max(0, DictVonAnwendungBerictScritIndexPfaadZuAutomaatZuusctandInfo .LastOrDefault((Kandidaat) => Kandidaat.Value.Zait <= AutomaatZuusctandScnapscusNocZuLaadeZaitMili).Key - WorkaroundAusBerictBeginListeScritAnzaalUnvolsctändigAnzaal - 4); var AuswertErhalte = false; if (null != MengeAutomaatZuusctandScnapscusAngefordertAuswert) { var BeginScritDistanzVonBisherAuswert = BeginBerictScritIndex - MengeAutomaatZuusctandScnapscusAngefordertAuswert.ScritVerwertetLezteIndex; if (MengeAutomaatZuusctandScnapscusAngefordertAuswert.ListeZuZaitAutomaatZuusctand.LastOrDefault().Zait < AutomaatZuusctandScnapscusNocZuLaadeZaitMili && BeginScritDistanzVonBisherAuswert < 10) { AuswertErhalte = true; } } if (!AuswertErhalte) { this.MengeAutomaatZuusctandScnapscusAngefordertAuswert = MengeAutomaatZuusctandScnapscusAngefordertAuswert = new SictBerictListeScritDiferenzAuswert(BeginBerictScritIndex, ZiilMemberExistentNictIgnoriire); } MengeAutomaatZuusctandScnapscusAngefordertAuswert.Berecne( (ScritIndex) => Optimat.Glob.TAD(this.DictVonAnwendungBerictScritIndexPfaadZuAutomaatZuusctandInfo, ScritIndex).Wert, InhaltAusDataiMitPfaad, AutomaatZuusctandScnapscusNocZuLaadeZaitMili); } } if (null != MengeAutomaatZuusctandScnapscusAngefordertAuswert) { var ListeZuZaitAutomaatZuusctand = MengeAutomaatZuusctandScnapscusAngefordertAuswert.ListeZuZaitAutomaatZuusctand; if (null != ListeZuZaitAutomaatZuusctand) { var ListeZuZaitAutomaatZuusctandVermuutungVolsctändig = ListeZuZaitAutomaatZuusctand; if (0 < MengeAutomaatZuusctandScnapscusAngefordertAuswert.BeginBerictScritIndex) { ListeZuZaitAutomaatZuusctandVermuutungVolsctändig = ListeZuZaitAutomaatZuusctand.Skip(WorkaroundAusBerictBeginListeScritAnzaalUnvolsctändigAnzaal); } foreach (var ZuZaitAutomaatZuusctand in ListeZuZaitAutomaatZuusctandVermuutungVolsctändig) { if (null != ZuZaitAutomaatZuusctand.Wert) { var AutomaatScritIdentZaitMili = (Int64?)ZuZaitAutomaatZuusctand.Wert.NuzerZaitMili; if (!AutomaatScritIdentZaitMili.HasValue) { continue; } DictVonAutomaatZaitMiliAutomaatZuusctand.AintraagErsctele(AutomaatScritIdentZaitMili.Value, ZuZaitAutomaatZuusctand.Wert); } } } } try { if (!(VerwertungMengeDataiAnzaalScranke <= 0) && null != BerictVerzaicnisPfaad) { /* * Ermitelt ob noie Dataie vorhande und verwertet diise gegeebenenfals. * */ var BerictVerzaicnis = new DirectoryInfo(BerictVerzaicnisPfaad); var MengeFile = BerictVerzaicnis.GetFiles(); var ListeFile = MengeFile .OrderBy((KandidaatFile) => KandidaatFile.Name) .ToArray(); int VerwertungMengeDataiAnzaalBisher = 0; foreach (var File in ListeFile) { if (VerwertungMengeDataiAnzaalScranke <= VerwertungMengeDataiAnzaalBisher) { break; } var DataiPfaad = File.FullName; var DataiBeraitsVerwertet = Optimat.Glob.TAD(DictZuDataiPfaadDataiVerwertungErfolg, DataiPfaad); if (DataiBeraitsVerwertet) { continue; } int DataiVerwertungVersuucAnzaal = 0; DictZuDataiPfaadDataiVerwertungVersuucAnzaal.TryGetValue(DataiPfaad, out DataiVerwertungVersuucAnzaal); if (3 < DataiVerwertungVersuucAnzaal) { continue; } DictZuDataiPfaadDataiVerwertungVersuucAnzaal[DataiPfaad] = 1 + DataiVerwertungVersuucAnzaal; var DataiInhalt = InhaltAusDataiMitPfaad(DataiPfaad); if (null == DataiInhalt) { continue; } using (var ZipArchive = new System.IO.Compression.ZipArchive(new MemoryStream(DataiInhalt), System.IO.Compression.ZipArchiveMode.Read)) { var MengeEntry = ZipArchive.Entries; if (null != MengeEntry) { foreach (var Entry in MengeEntry) { var EntryIdent = new SictBerictDataiIdentInDsInfo(DataiPfaad, Entry.FullName); using (var EntryStream = Entry.Open()) { var EntryInhalt = Optimat.Glob.AusStreamLeese(EntryStream); var EntrySictUTF8 = Encoding.UTF8.GetString(EntryInhalt); var EntrySictSctrukt = AusStringVonAnwendungBerictBerecne(EntrySictUTF8); // !!!! Hiir werd davon ausgegange das MengeAutomaatZuusctandSictSeriel jewails komplete Zuusctand (Diferenz von 0) enthalte. var MengeAutomaatZuusctandSictSeriel = EntrySictSctrukt.MengeAutomaatZuusctandMitZait ?? EntrySictSctrukt.MengeAutomaatZuusctandDiferenzScritMitZait; if (null != MengeAutomaatZuusctandSictSeriel) { foreach (var AutomaatZuusctandSictSeriel in MengeAutomaatZuusctandSictSeriel) { var ScritIndexNulbar = AutomaatZuusctandSictSeriel.Wert.ScritIndex; if (!ScritIndexNulbar.HasValue) { continue; } var ScritIndex = ScritIndexNulbar.Value; var AutomaatZuusctandBerictScritErwartetIndex = (AutomaatZuusctandBerictScritLezteIndex + 1) ?? 0; if (!(AutomaatZuusctandBerictScritErwartetIndex == ScritIndex)) { continue; } AutomaatZuusctandBerictScritLezteIndex = ScritIndex; var AutomaatZuusctandBerictScritDiferenz = AutomaatZuusctandSictSeriel; var ScritSume = AutomaatZuusctandBerictSictSume.BerecneScritSumeListeWurzelRefClrUndErfolg( AutomaatZuusctandBerictScritDiferenz.Wert, ZiilMemberExistentNictIgnoriire); if (null == ScritSume) { continue; } var ScritSumeListeObjekt = ScritSume.ListeWurzelRefClr; // !!!! zu erseze durc entferne taatsäclic nit meer benöötigte. AutomaatZuusctandBerictSictSume.MengeObjektInfoEntferneÄltere(ScritIndex - 44); if (null == ScritSumeListeObjekt) { continue; } var AutomaatZuusctand = (Optimat.ScpezEveOnln.SictAutomatZuusctand) ScritSumeListeObjekt.FirstOrDefault(); if (null == AutomaatZuusctand) { continue; } var AutomaatScritIdentZaitMili = (Int64?)AutomaatZuusctand.NuzerZaitMili; if (!AutomaatScritIdentZaitMili.HasValue) { continue; } /* * 2015.00.04 * * Kopii nit meer durc SictRefNezKopii mööglic da Dictionary<,> verwendet werd. * * var AutomaatZuusctandKopii = SictRefNezKopii.ObjektKopiiErsctele(AutomaatZuusctand, null, null); * */ /* * 2015.00.06 * * Kopii wiider durc SictRefNezKopii mööglic da SictRefNezKopii naacgerüsct wurd um Verhalte von TypeBehandlungRictliinie RefNezDif zu verwende. * * var AutomaatZuusctandKopii = RefNezDiferenz.SictRefNezSume.ObjektKopiiBerecne(AutomaatZuusctand, * RefNezDiferenz.NewtonsoftJson.SictMengeTypeBehandlungRictliinieNewtonsoftJson.KonstruktSictParam()); * */ var AutomaatZuusctandKopii = SictRefNezKopii.ObjektKopiiErsctele(AutomaatZuusctand, null, null); BerecneLezteListeAutomaatZuusctand.Add(new KeyValuePair <Int64, Optimat.ScpezEveOnln.SictAutomatZuusctand>( AutomaatScritIdentZaitMili.Value, AutomaatZuusctandKopii)); DictVonAnwendungBerictScritIndexPfaadZuAutomaatZuusctandInfo[ScritIndexNulbar.Value] = new SictWertMitZait <SictBerictDataiIdentInDsInfo>(AutomaatScritIdentZaitMili.Value, EntryIdent); ZuAutomaatZuusctandVonZaitMiliAblaitungScpaicere( new SictWertMitZait <Optimat.ScpezEveOnln.SictAutomatZuusctand>( AutomaatZuusctandSictSeriel.Zait, AutomaatZuusctandKopii)); if (DictVonAutomaatZaitMiliAutomaatZuusctand.Count < ScatenscpaicerScritZuusctandAnzaalScrankeMax) { DictVonAutomaatZaitMiliAutomaatZuusctand.AintraagErsctele(AutomaatScritIdentZaitMili.Value, AutomaatZuusctandKopii); } } } } } } } DictZuDataiPfaadDataiVerwertungErfolg[DataiPfaad] = true; ++VerwertungMengeDataiAnzaalBisher; } } } catch (System.Exception Exception) { LaadeDataiException = Exception; } { // Scatescpaicer Scranke apliziire. DictZuDataiPfaadDataiInhalt.BescrankeEntferneLängerNitVerwendete( null, ScatenscpaicerBerictDataiKapazitäätScranke, (DataiInhalt) => 1000 + ((null == DataiInhalt) ? 0 : DataiInhalt.LongLength)); DictVonAutomaatZaitMiliAutomaatZuusctand.BescrankeEntferneLängerNitVerwendete( ScatenscpaicerScritZuusctandAnzaalScrankeMax); } { AnwendungMengeScnapscusZaitMili = DictVonAnwendungBerictScritIndexPfaadZuAutomaatZuusctandInfo .Select((t) => t.Value.Zait).ToArray(); ListeDataiAnzaal = DictZuDataiPfaadDataiVerwertungErfolg.Count; } } finally { this.BerecneLezteListeAutomaatZuusctand = BerecneLezteListeAutomaatZuusctand.ToArray(); } }