Example #1
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 #2
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);
            }
        }