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); } }
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); } }