Example #1
0
        public static void DatenAusDatenbankLaden(OptionenArbeitszeit Optionen)
        {
            string msg;

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (Optionen.VerbindungsString != "")
                    {
                        Db.Database.Connection.ConnectionString = Optionen.VerbindungsString;
                    }

                    msg = $"Datenbank öffnen -> {Db.Database.Connection.ConnectionString}";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Information);

                    Optionen.ListeTerminals = Db.tabArbeitszeitTerminalSet.Where(w => !w.DatenAbgleich.Geloescht).Include(i => i.eStandort).ToList();
                    msg = $"{Optionen.ListeTerminals.Count} Terminals aus DB eingelesen";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (Optionen.ErsterDurchlauf)
                    {
                        Optionen.ErsterDurchlauf = false;
                        var anzFehlerNichtNull = Optionen.ListeTerminals.Where(w => w.AnzahlFehler > 0).ToList();
                        if (anzFehlerNichtNull.Count > 0)
                        {
                            foreach (var nn in anzFehlerNichtNull)
                            {
                                nn.AnzahlFehler = 0;
                            }
                            Db.SaveChanges();
                        }
                    }

                    Optionen.UpdateBenutzerAusfuehren = (Optionen.ListeTerminals.Any(w => w.UpdateTerminal));
                    if (Optionen.UpdateBenutzerAusfuehren)
                    {
                        Optionen.ListeBediener = Db.tabBedienerSet.Where(w => (w.Status != EnumStatusBediener.Stillgelegt) && (!w.DatenAbgleich.Geloescht)).ToList();
                        msg = $"{Optionen.ListeBediener.Count} Bediener für Update Terminal aus DB eingelesen";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);
                    }
                }
                msg = $"Daten aus Datenbank erfolgreich geladen.";
                Logger.Write(msg, "Service", 0, 0, TraceEventType.Information);
            }
            catch (Exception f)
            {
                msg = $"Fehler beim Laden der Daten aus der Datenbank.";
                throw new MyException(msg, f);
            }
        }
Example #2
0
        private void RibbonWindow_Loaded(object sender, RoutedEventArgs e)
        {
            _Db = new JgModelContainer();
            if (Properties.Settings.Default.DatenbankVerbindungsString != "")
            {
                _Db.Database.Connection.ConnectionString = Properties.Settings.Default.DatenbankVerbindungsString;
            }

            _Auswertungen = new JgEntityList <tabAuswertung>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsAuswertung"),
                Tabellen     = new DataGrid[] { dgAuswertung },
                OnDatenLaden = (d, p) =>
                {
                    return(d.tabAuswertungSet.Where(w => w.FilterAuswertung == EnumFilterAuswertung.Allgemein).ToList());
                }
            };
            _Auswertungen.DatenLaden();
            _Auswertungen.Daten = _Auswertungen.Daten.OrderBy(o => o.ReportName).ToList();

            _Report          = new FastReport.Report();
            _Report.FileName = "Datenbank";
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    var ausw = _Auswertungen.Current;

                    repEvent.Report.Save(memStr);
                    ausw.Report         = memStr.ToArray();
                    ausw.GeaendertDatum = DateTime.Now;
                    ausw.GeaendertName  = Helper.Benutzer;
                    _Auswertungen.DsSave(ausw);
                }
                catch (Exception f)
                {
                    System.Windows.MessageBox.Show("Fehler beim speichern des Reports !\r\nGrund: " + f.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    memStr.Dispose();
                }
            };

            InitCommands();
        }
Example #3
0
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _Db       = new JgModelContainer();
            _Standort = await _Db.tabStandortSet.FirstOrDefaultAsync(f => f.Id == Properties.Settings.Default.IdStandort);

            if (_Standort == null)
            {
                _Standort = await _Db.tabStandortSet.FirstOrDefaultAsync();
            }

            tblStandort.Text = _Standort.Bezeichnung;

            InitListen();

            _Report = new FastReport.Report()
            {
                FileName = "Datenbank"
            };
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    repEvent.Report.Save(memStr);
                    _Db.tabAuswertungSet.Attach(_AktAuswertung);
                    _AktAuswertung.Report         = memStr.ToArray();
                    _AktAuswertung.GeaendertDatum = DateTime.Now;
                    _AktAuswertung.GeaendertName  = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    _Db.SaveChanges();
                }
                catch (Exception f)
                {
                    Helper.InfoBox("Fehler beim speichern des Reports!", f);
                }
                finally
                {
                    memStr.Dispose();
                }
            };

            _TimerAktualisierungTreeView = new DispatcherTimer(new TimeSpan(0, 1, 0), DispatcherPriority.ApplicationIdle, (sen, erg) =>
            {
                TreeViewMaschinenAktualisieren();
            }, Dispatcher.CurrentDispatcher);
        }
Example #4
0
        public void DatenInDatenbankEintragen(List <HandyDaten> ListeDaten)
        {
            var listeAuswertung = ListeDaten.Select(s => new ArbeitszeitImportDaten()
            {
                Datum     = s.timestamp,
                MatchCode = s.userId,
                Vorgang   = s.isCheckIn ? ArbeitszeitImportDaten.EnumVorgang.Komme : ArbeitszeitImportDaten.EnumVorgang.Gehen,
                Baustelle = s.construction
            }).ToList();

            var msg = "";

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (!string.IsNullOrWhiteSpace(_ConnectionString))
                    {
                        Db.Database.Connection.ConnectionString = _ConnectionString;
                    }

                    var azImport = new ArbeitszeitImport();
                    azImport.ImportStarten(Db, listeAuswertung);

                    Db.SaveChanges();

                    msg = $"{azImport.AnzahlAnmeldungen} Handy Anmeldungen in Datenbank gespeichert.\n{azImport.ProtokollOk}";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (azImport.ProtokollFehler != null)
                    {
                        msg = $"Anmeldungen ohne Benutzerzuordnung.\n{azImport.ProtokollFehler}";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Warning);
                    }
                }
            }
            catch (Exception f)
            {
                msg = "Fehler beim eintragen der Anmeldedaten in die Datenbank.";
                throw new MyException(msg, f);
            }
        }
Example #5
0
    public static async Task ListeAktualisieren<T>(JgModelContainer Db, IEnumerable<T> Liste)
      where T : class
    {
      var propId = typeof(T).GetProperty("Id");
      var propDateAbleich = typeof(T).GetProperty("DatenAbgleich");

      var dicDs = new SortedDictionary<Guid, T>();
      foreach (var ds in Liste)
        dicDs.Add((Guid)propId.GetValue(ds), ds);

      // geänderte Datensätze aktualisieren, Wenn mehr als 500 Datensätze dann keine Aktualisierung
      if ((dicDs.Count != 0) && (dicDs.Count < 2000))
      {
        var sbAbfrageText = new StringBuilder();
        foreach (var ds in dicDs)
          sbAbfrageText.AppendLine($"  ('{ds.Key.ToString()}','{(propDateAbleich.GetValue(ds.Value) as DatenAbgleich).Datum.ToString("dd.MM.yyyy HH:mm:ss")}'),");

        var sqlText = "IF OBJECT_ID(N'tempdb..#TempDs', N'U') IS NOT NULL DROP TABLE #TempDs \n"
                    + "CREATE TABLE #TempDs (Id uniqueidentifier NOT NULL, Datum char(19) NOT NULL) \n"
                    + "INSERT INTO #TempDs VALUES \n"
                    + sbAbfrageText.ToString().Substring(0, sbAbfrageText.ToString().Length - 3) + "\n"
                    + "SELECT Id FROM #TempDs as t \n"
                    + "  WHERE EXISTS(SELECT * FROM " + typeof(T).Name + "Set WHERE (Id = t.Id) AND (FORMAT(DatenAbgleich_Datum , 'dd/MM/yyyy HH:mm:ss') <> t.Datum))";

        var idisAendern = new List<Guid>();
        var sc = Db.Database.Connection.ConnectionString;
        using (var con = new SqlConnection(sc))
        {
          await con.OpenAsync();
          var cl = new SqlCommand(sqlText, con);
          using (var reader = await cl.ExecuteReaderAsync())
          {
            while (reader.Read())
              idisAendern.Add((Guid)reader[0]);
          }
        }

        foreach (var ds in idisAendern)
          await Db.Entry<T>(dicDs[ds]).ReloadAsync();
      }
    }
Example #6
0
 public void Init(JgModelContainer Db, ArbeitszeitRunden AzRunden)
 {
     _Db       = Db;
     _AzRunden = AzRunden;
 }
Example #7
0
 public ArbeitszeitBediener(JgModelContainer Db, ArbeitszeitRunden AzRunden)
 {
     Init(Db, AzRunden);
 }
Example #8
0
 private async void HelperReparaturAnmeldungen(JgModelContainer d, IEnumerable <tabReparatur> dat)
 {
     await JgList.ListeAktualisieren <tabAnmeldungReparatur>(d, dat.SelectMany(s => s.sAnmeldungen).ToList());
 }
Example #9
0
 public MaschineSchnell(JgModelContainer Db, string StartPfad)
 {
     _Db        = Db;
     _StartPfad = StartPfad;
 }
Example #10
0
        public void ImportStarten(JgModelContainer Db, List <ArbeitszeitImportDaten> NeuListeArbeitszeiten)
        {
            var lArbeitzeiten = from z in NeuListeArbeitszeiten
                                group z by z.MatchCode into erg
                                select new { MatchCode = erg.Key, Anmeldungen = erg.OrderBy(o => o.Datum) };

            var listeMatchCodes = lArbeitzeiten.Select(s => s.MatchCode).ToArray();
            var listeBediener   = Db.tabBedienerSet.Where(w => listeMatchCodes.Contains(w.MatchCode))
                                  .Include(i => i.eAktivArbeitszeit)
                                  .ToDictionary(t => t.MatchCode, t => t);
            var listeStandorte = Db.tabStandortSet.ToDictionary(t => t.Id, t => t);

            foreach (var mc in lArbeitzeiten)
            {
                var bediener = listeBediener[mc.MatchCode];

                if (bediener == null)
                {
                    _StringBuilderFehler.AppendLine($" {mc.MatchCode}");
                    _StringBuilderFehler.AppendLine($" ---------------------------------------------");
                    foreach (var anm in mc.Anmeldungen)
                    {
                        _StringBuilderFehler.AppendLine($" -> {anm.Datum} {anm.Vorgang}");
                    }
                    continue;
                }

                _StringBuilderOk.AppendLine($" {mc.MatchCode} - {bediener.Name}");
                _StringBuilderOk.AppendLine($" ---------------------------------------------");

                foreach (var anm in mc.Anmeldungen)
                {
                    AnzahlAnmeldungen++;

                    var standort = listeStandorte[anm.IdStandort ?? bediener.fStandort];
                    var ss       = (standort == null) ? " - " : standort.Bezeichnung;
                    _StringBuilderOk.AppendLine($" -> {anm.Datum} - {anm.Vorgang} / {ss} ");

                    if (anm.Vorgang == ArbeitszeitImportDaten.EnumVorgang.Komme)
                    {
                        var arbZeit = ArbeitszeitErstellen(bediener.Id, standort.Id, anm.Datum, anm.Baustelle);
                        Db.tabArbeitszeitSet.Add(arbZeit);
                        bediener.eAktivArbeitszeit = arbZeit;
                    }
                    else if (anm.Vorgang == ArbeitszeitImportDaten.EnumVorgang.Gehen)
                    {
                        if (bediener.eAktivArbeitszeit != null)
                        {
                            bediener.eAktivArbeitszeit.Abmeldung         = anm.Datum;
                            bediener.eAktivArbeitszeit.ManuelleAbmeldung = false;
                            bediener.eAktivArbeitszeit = null;
                        }
                        else
                        {
                            var arbZeit = ArbeitszeitErstellen(bediener.Id, standort.Id, anm.Datum, anm.Baustelle);
                            Db.tabArbeitszeitSet.Add(arbZeit);
                        }
                    }
                }
            }
        }
Example #11
0
 public DatenKontrolle(JgModelContainer Db)
 {
     _Db     = Db;
     _Entity = _Db.Set <T>();
 }
Example #12
0
        public static void ArbeitszeitenInDatenbank(OptionenArbeitszeit Optionen)
        {
            var msg = "";

            try
            {
                using (var Db = new JgModelContainer())
                {
                    if (Optionen.VerbindungsString != "")
                    {
                        Db.Database.Connection.ConnectionString = Optionen.VerbindungsString;
                    }

                    msg = "Beginne Eintragungen in Datenbank.";
                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                    if (Optionen.ListeAnmeldungen.Count > 0)
                    {
                        var azImport = new ArbeitszeitImport();
                        azImport.ImportStarten(Db, Optionen.ListeAnmeldungen);

                        Db.SaveChanges();
                        msg = $"{azImport.AnzahlAnmeldungen} Anmeldungen erfolgreich in Datenbank gespeichert.\n\n{azImport.ProtokollOk}";
                        Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);

                        if (azImport.ProtokollFehler != null)
                        {
                            msg = $"Anmeldungen ohne Benutzerzuordnung!\n\n{azImport.ProtokollFehler}";
                            Logger.Write(msg, "Service", 0, 0, TraceEventType.Warning);
                        }
                    }

                    foreach (var term in Optionen.ListeTerminals)
                    {
                        if ((term.TerminaldatenWurdenAktualisiert) ||
                            (term.FehlerTerminalAusgeloest) ||
                            ((!term.FehlerTerminalAusgeloest) && (term.AnzahlFehler != 0)))
                        {
                            Db.tabArbeitszeitTerminalSet.Attach(term);
                            Db.Entry(term).State = EntityState.Modified;

                            // Terminals die erfolgreich geUpdatet wurden eintragen
                            if (term.TerminaldatenWurdenAktualisiert)
                            {
                                term.UpdateTerminal = false;
                            }

                            // Wenn Fehleranzahl erreicht wurde, Fehler anzeigen und FehlerAnzahl auf 0 setzen
                            if (term.FehlerTerminalAusgeloest)
                            {
                                term.AnzahlFehler = (short)(term.AnzahlFehler + 1);

                                if (term.AnzahlFehler >= Optionen.AnzahlBisFehlerAusloesen)
                                {
                                    term.AnzahlFehler = 0;
                                    msg = $"Fehleranzahl Verbindungsaufbau Terminal {term.Bezeichnung} / {term.eStandort.Bezeichnung} größer {Optionen.AnzahlBisFehlerAusloesen}.";
                                    Logger.Write(msg, "Service", 0, 0, TraceEventType.Error);
                                }
                            }
                            else
                            {
                                if (term.AnzahlFehler != 0)
                                {
                                    term.AnzahlFehler = 0;
                                }
                            }

                            msg = $"Terminal {term.Bezeichnung} / {term.eStandort.Bezeichnung} aktualisiert.";
                            Logger.Write(msg, "Service", 0, 0, TraceEventType.Verbose);
                        }
                    }

                    Db.SaveChanges();
                }
            }
            catch (Exception f)
            {
                msg = "Fehler beim eintragen der Anmeldedaten in die Datenbank.";
                throw new MyException(msg, f);
            }
        }
Example #13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="Db"></param>
 /// <param name="DatenAnViewSourceBinden">Bei Detailtabellen dürfen die Daten nicht an Viesource gebunden Werden</param>
 public JgEntityList(JgModelContainer NeuDb)
 {
     _Db = NeuDb;
 }
Example #14
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

            this.Title += " - V " + version.ToString();

            _Db = new JgModelContainer();
            if (Properties.Settings.Default.DatenbankVerbindungsString != "")
            {
                _Db.Database.Connection.ConnectionString = Properties.Settings.Default.DatenbankVerbindungsString;
            }

            var heute = DateTime.Now.Date;

            _AzRunden = new ArbeitszeitRunden(_Db, heute.Year);

            _DzArbeitszeitVon.AnzeigeDatumZeit = heute;
            _DzArbeitszeitBis.AnzeigeDatumZeit = new DateTime(heute.Year, heute.Month, heute.Day, 23, 59, 59);

            _ListeArbeitszeitenAuswahl = new JgEntityList <tabArbeitszeit>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsArbeitszeitAuswahl"),
                Tabellen     = new DataGrid[] { dgArbeitszeitAuswahl },
                OnDatenLaden = (d, p) =>
                {
                    var datVom   = (DateTime)p.Params["DatumVon"];
                    var datBis   = (DateTime)p.Params["DatumBis"];
                    var azRunden = (ArbeitszeitRunden)p.Params["AzRunden"];

                    var lZeiten = d.tabArbeitszeitSet.Where(w => (((w.Anmeldung >= datVom) && (w.Anmeldung <= datBis)) ||
                                                                  ((w.Anmeldung == null) && (w.Abmeldung >= datVom) && (w.Abmeldung <= datBis))));

                    if (!p.IstSortiert)
                    {
                        lZeiten = lZeiten.OrderBy(o => o.Anmeldung);
                    }

                    foreach (var zeit in lZeiten.ToList())
                    {
                        zeit.AnmeldungGerundet = azRunden.GetZeitGerundet(EnumZeitpunkt.Anmeldung, zeit.fStandort, zeit.Anmeldung);
                        zeit.AbmeldungGerundet = azRunden.GetZeitGerundet(EnumZeitpunkt.Abmeldung, zeit.fStandort, zeit.Abmeldung);
                    }

                    return(lZeiten);
                }
            };
            _ListeArbeitszeitenAuswahl.Parameter["AzRunden"] = _AzRunden;
            _ListeArbeitszeitenAuswahl.Parameter["DatumVon"] = _DzArbeitszeitVon.AnzeigeDatumZeit;
            _ListeArbeitszeitenAuswahl.Parameter["DatumBis"] = _DzArbeitszeitBis.AnzeigeDatumZeit;
            _ListeArbeitszeitenAuswahl.DatenLaden();

            // Report initialisieren ********************************

            _ListeReporteArbeitszeiten = new JgEntityList <tabAuswertung>(_Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsReporteArbeitszeit"),
                OnDatenLaden = (d, p) =>
                {
                    return(_Db.tabAuswertungSet.Where(w => (w.FilterAuswertung == EnumFilterAuswertung.Arbeitszeit) && (!w.DatenAbgleich.Geloescht))
                           .OrderBy(o => o.ReportName).ToList());
                }
            };
            _ListeReporteArbeitszeiten.DatenLaden();

            _ListeReporteAuswertung = new JgEntityList <tabAuswertung>(_ListeReporteArbeitszeiten.Db)
            {
                ViewSource   = (CollectionViewSource)FindResource("vsReporteAuswertung"),
                OnDatenLaden = (d, p) =>
                {
                    return(_Db.tabAuswertungSet.Where(w => (w.FilterAuswertung == EnumFilterAuswertung.ArbeitszeitAuswertung) && (!w.DatenAbgleich.Geloescht))
                           .OrderBy(o => o.ReportName).ToList());
                }
            };
            _ListeReporteAuswertung.DatenLaden();

            // Klasse Auswertung intitialisieren

            _Erstellung = new AnmeldungAuswertung(_Db, cbJahr, cbMonat,
                                                  (CollectionViewSource)FindResource("vsBediener"),
                                                  _AzRunden,
                                                  (ArbeitszeitBediener)FindResource("ArbeitszeitBediener"),
                                                  (CollectionViewSource)FindResource("vsArbeitszeitTage"));

            // Report für Auswertung erstellen

            _Report = new FastReport.Report()
            {
                FileName = "Datenbank"
            };
            _ReportSettings.CustomSaveReport += (obj, repEvent) =>
            {
                MemoryStream memStr = new MemoryStream();
                try
                {
                    repEvent.Report.Save(memStr);
                    _AktuellerReport.Report         = memStr.ToArray();
                    _AktuellerReport.GeaendertDatum = DateTime.Now;
                    _AktuellerReport.GeaendertName  = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    _ListeReporteArbeitszeiten.DsSave(_AktuellerReport);
                    if (_AktuellerReport.FilterAuswertung == EnumFilterAuswertung.ArbeitszeitAuswertung)
                    {
                        _ListeReporteAuswertung.Refresh();
                    }
                    else
                    {
                        _ListeReporteArbeitszeiten.Refresh();
                    }
                }
                catch (Exception f)
                {
                    MessageBox.Show("Fehler beim speichern des Reports !\r\nGrund: " + f.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                finally
                {
                    memStr.Dispose();
                }
            };
        }
Example #15
0
        public void Start()
        {
            string msg = "";

            while (true)
            {
                using (var db = new JgModelContainer())
                {
                    var standort = db.tabStandortSet.FirstOrDefault(w => w.Bezeichnung.ToUpper() == Properties.Settings.Default.Standort);
                    if (standort == null)
                    {
                        msg = $"Standort {Properties.Settings.Default.Standort} nicht gefunden!";
                        Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Error);
                        break;
                    }

                    var lMaschinen = db.tabMaschineSet.Where(w => (w.fStandort == standort.Id) && (w.Status != EnumStatusMaschine.Stillgelegt) &&
                                                             (w.MaschinenArt != EnumMaschinenArt.Handbiegung) && (w.ProdDatenabfrage)).ToList();
                    if (lMaschinen.Count == 0)
                    {
                        msg = $"Für Standort {standort.Bezeichnung} sind keine Maschinen vorhanden!";
                        Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Warning);
                        break;
                    }

                    MaschinenStamm   maStamm    = null;
                    MaschineEvg      maEvg      = null;
                    MaschineSchnell  maSchnell  = null;
                    MaschineProgress maProgress = null;

                    foreach (var maschine in lMaschinen)
                    {
                        var pr = maschine.eProtokoll;
                        pr.AuswertungStart = DateTime.Now;
                        pr.AnzahlDurchlauf++;

                        if (!Helper.IstPingOk(maschine.MaschineAdresse, out msg))
                        {
                            maschine.eProtokoll.FehlerVerbindungMaschine++;
                            continue;
                        }

                        switch (maschine.MaschinenArt)
                        {
                        case EnumMaschinenArt.Evg:
                            if (maEvg == null)
                            {
                                maEvg = new MaschineEvg(db, _Optionen.PfadEvg);
                            }
                            maStamm = maEvg;
                            break;

                        case EnumMaschinenArt.Progress:
                            if (maProgress == null)
                            {
                                maProgress = new MaschineProgress(db, _Optionen.PfadProgress);
                            }
                            maStamm = maProgress;
                            break;

                        case EnumMaschinenArt.Schnell:
                            if (maSchnell == null)
                            {
                                maSchnell = new MaschineSchnell(db, _Optionen.PfadSchnell);
                            }
                            maStamm = maSchnell;
                            break;
                        }

                        try
                        {
                            maStamm.Start(maschine);
                        }
                        catch (Exception f)
                        {
                            msg = $"Fehler import Daten in Maschine {maschine.MaschinenName}\nGrund: {f.Message}";
                            maschine.eProtokoll.FehlerDatenImport++;
                            Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Warning);
                            continue;
                        }
                        finally
                        {
                            pr.AuswertungEnde = DateTime.Now;
                        }

                        try
                        {
                            msg = $"Protokoll für Maschine {maschine.MaschinenName} gesichert.";
                            Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Verbose);
                        }
                        catch (Exception f)
                        {
                            msg = $"Fehler beim speichern des Maschinenprotokolls: {maschine.MaschinenName}\nGrund: {f.Message}";
                            Logger.Write(msg, "Service", 1, 0, System.Diagnostics.TraceEventType.Error);
                            break;
                        }
                    }
                }
            }
        }
Example #16
0
 public MaschineProgress(JgModelContainer Db, string PfadStart)
 {
     _Db        = Db;
     _StartPfad = PfadStart;
 }