Пример #1
0
        private static void NavigationsEigenschaftAuslesen()
        {
            Debug.WriteLine("NavigationsEigenschaftAuslesen");

            try
            {
                using (var context = new dbTestITIN22Entities())
                {
                    var benutzer = context.AlleBenutzer.FirstOrDefault();

                    Console.WriteLine($"Waren des Benutzers {benutzer.Nachname}");
                    foreach (var rechnung in benutzer.AlleRechnungen)
                    {
                        foreach (var rechnungsWare in rechnung.AlleRechnungsWaren)
                        {
                            Console.WriteLine($"\t{rechnungsWare.Ware.Bezeichnung}");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Fehler in NavigationsEigenschaftAuslesen");
                Debug.WriteLine("\t" + ex.Message);
                if (ex.InnerException != null)
                {
                    Debug.WriteLine("\t\t" + ex.InnerException.Message);
                }
                Debugger.Break();
            }
        }
Пример #2
0
        private static void EinfacheAbfrage()
        {
            Debug.WriteLine("Einfache Abfrage");

            try
            {
                using (var context = new dbTestITIN22Entities())
                {
                    foreach (var rolle in context.AlleRollen)
                    {
                        Console.WriteLine($"Rolle {rolle.Bezeichnung} ({rolle.ID})");
                    }
                    Debug.WriteLine($"Anzahl Rollen {context.AlleRollen.Count()}");
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Fehler in EinfacheAbfrage");
                Debug.WriteLine("\t" + ex.Message);
                if (ex.InnerException != null)
                {
                    Debug.WriteLine("\t\t" + ex.InnerException.Message);
                }
                Debugger.Break();
            }
        }
Пример #3
0
        private static void LazyLoading()
        {
            /// mache eine Verbindung auf
            using (var context = new dbTestITIN22Entities())
            {
                /// hier werden eben NUR die Waren geladen
                Ware ware = context.AlleWaren.First();

                /// dh: solange die Verbindung offen ist
                /// kann ich - ohne Probleme - andere Objekte nachladen
                /// => Lazy Loading!
                /// hier wird also die Kategorie nachgeladen
                Console.WriteLine(ware.Kategorie.Bezeichnung);
            } /// hier wird der Context verworfen UND die Verbindung geschlossen
        }
Пример #4
0
        private static void EagerLoading()
        {
            Ware ware = null;

            /// mache eine Verbindung auf
            using (var context = new dbTestITIN22Entities())
            {
                /// hier werden eben NUR die Waren geladen
                ///     .Include(NAME_DER_NAVIGATIONS_EIGENSCHAFT)
                /// ist zwar technisch möglich, aber äußerst Fehler anfällig
                /// Stichwort: MAGIC STRING
                //ware = context.AlleWaren.Include("Kategorie").First();

                /// Lösung: man kann hier auch eine Lambda Expression
                /// (TYPE SAFE!) verwenden, muss dazu allerdings einen
                /// zusätzlichen namespace einbauen
                ware = context.AlleWaren.Include(x => x.Kategorie).First();
            } /// hier wird der Context verworfen UND die Verbindung geschlossen

            /// da ich die Kategorie allerdings mit EAGER Loading (noch vor dem Schließen der Verbindung)
            /// geladen habe, kann ich hier auf diese zugreifen
            Console.WriteLine(ware.Kategorie.Bezeichnung);
        }
Пример #5
0
        public static AnmeldenErgebnis Anmelden(string benutzerName, string passwort)
        {
            Debug.WriteLine("BenutzerVerwaltung - AnmeldenErgebnis Anmelden(string benutzerName, string passwort)");
            Debug.Indent();

            AnmeldenErgebnis ergebnis = AnmeldenErgebnis.BenutzerNameUnbekannt;

            if (string.IsNullOrEmpty(benutzerName))
            {
                throw new ArgumentNullException(nameof(benutzerName));
            }
            else if (string.IsNullOrEmpty(passwort))
            {
                throw new ArgumentNullException(nameof(passwort));
            }
            else
            {
                try
                {
                    Benutzer benutzer = null;
                    using (var context = new dbTestITIN22Entities())
                    {
                        benutzer = context.AlleBenutzer.Where(x => x.BenutzerName == benutzerName).FirstOrDefault();
                    }

                    if (benutzer == null)
                    {
                        Debug.WriteLine($"Benutzername {benutzerName} unbekannt!");
                        ergebnis = AnmeldenErgebnis.BenutzerNameUnbekannt;
                    }
                    else if (!benutzer.Aktiv)
                    {
                        Debug.WriteLine($"Benutzername {benutzerName} gesperrt!");
                        ergebnis = AnmeldenErgebnis.BenutzerGesperrt;
                    }
                    else if (!Tools.ErmittleHashWert(passwort).SequenceEqual(benutzer.Passwort))
                    {
                        Debug.WriteLine($"Passwort für {benutzerName} falsch!");
                        ergebnis = AnmeldenErgebnis.PasswortFalsch;
                    }
                    else
                    {
                        Debug.WriteLine($"Anmeldung für Benutzername {benutzerName} erfolgreich");
                        ergebnis = AnmeldenErgebnis.Erfolgreich;
                    }
                }
                catch (Exception ex)
                {
                    Debug.Indent();
                    Debug.WriteLine("Fehler in Anmelden(..)");
                    Debug.WriteLine(ex.Message);
                    if (ex.InnerException != null)
                    {
                        Debug.Indent();
                        Debug.WriteLine(ex.InnerException.Message);
                        Debug.Unindent();
                    }
                    Debugger.Break();
                    Debug.Unindent();
                }
            }

            Debug.Unindent();
            return(ergebnis);
        }