Esempio n. 1
0
        public void FindMedium()
        {
            UiHelpers.ShowHeader("Medium suchen");

            // ask search pattern
            Console.Write("Suchbedingung: ");
            var pattern = Console.ReadLine();
            int i       = 0;
            var result  = svc.FindMedium(pattern, 10);

            // show search result
            if (result.Count == 0)
            {
                Console.WriteLine("Nichts gefunden");
            }
            else
            {
                foreach (var medium in result)
                {
                    Console.WriteLine($"{++i:d2} {medium.Title}");
                    Console.WriteLine($"     [{medium.Category}] [{medium.Kind}] {medium.Author}");
                }
            }

            // TODO
            Console.WriteLine("\n!!!To do:");
            Console.WriteLine("The search pattern shall also be used");
            Console.WriteLine("to match category, kind and author.");
        }
Esempio n. 2
0
        public void ShowMainMenu()
        {
            UiHelpers.ShowHeader("Willkommen in der Stadtbücherei");

            // setup menu items
            var menuItems = new UiMenuItem[] {
                new UiMenuItem('A', "Anmelden", Login),
                new UiMenuItem('S', "Medium suchen", FindMedium),
            };

            // show menu items
            foreach (var mi in menuItems)
            {
                Console.WriteLine($"{mi.Key} {mi.Info}");
            }

            // ask user an invoke menu action
            for (bool ende = false; !ende; /**/)
            {
                var key = UiHelpers.AskKey("\nIhre Wahl");
                foreach (var mi in menuItems)
                {
                    if (mi.Key == key)
                    {
                        mi.Action();
                        ende = true;
                        break;
                    }
                }
            }
        }
Esempio n. 3
0
        public void Login()
        {
            // ask user for credentials
            UiHelpers.ShowHeader("Anmelden");
            var user   = UiHelpers.AskValue("Benutzername");
            var pwHash = UiHelpers.AskValue("Kennwort").GetHashCode();

            // authenticate user
            if (svc.FindPersonByCredentials(user, pwHash, out Person person))
            {
                Console.WriteLine("Fake result:");
                Console.WriteLine(person.FirstName + " " + person.LastName);
            }

            // TODO
            Console.WriteLine("\n!!!To do:");
            Console.WriteLine("Select concrete Person");
            Console.WriteLine("User name shall be for all persons:");
            Console.WriteLine("  first letter of first name plus");
            Console.WriteLine("  3 fist letters of last name.");
            Console.WriteLine("Example: Hugo Müller --> hmül");
            Console.WriteLine("User password shall be \"4711\" for all persons:");
        }
Esempio n. 4
0
        public void Run()
        {
            UiHelpers.InitConsole();

            // drop database file for testing purpose
            //File.Delete(ModelContext.DataBaseFile);

            using (var db = new ModelContext()) {
                // create DB if not exists
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                GsoLogger.LoggingEnabled = false;

                // populate DB
                if (db.Persons.OfType <Admin>().Count() == 0)
                {
                    db.Add(new Admin()
                    {
                        FirstName = "Adalbert", LastName = "Acker", Department = "Service"
                    });
                    db.Add(new Admin()
                    {
                        FirstName = "Agate", LastName = "Ahrweiler", Department = "Service"
                    });
                    db.SaveChanges();
                }
                if (db.Persons.OfType <Employee>().Where(p => !(p is Admin)).Count() == 0)
                {
                    var boss = new Employee()
                    {
                        FirstName = "Egon", LastName = "Boss", Department = "Customer"
                    };
                    db.Add(boss);
                    db.Add(new Employee()
                    {
                        FirstName = "Ernst", LastName = "Ecker", LineManager = boss, Department = "Customer"
                    });
                    db.Add(new Employee()
                    {
                        FirstName = "Emilia", LastName = "Eichberg", LineManager = boss, Department = "Customer"
                    });
                    db.SaveChanges();
                }
                if (db.Persons.OfType <Member>().Count() == 0)
                {
                    db.AddRange(SvcImport.ImportMembers3(@"../../../Data/fake-persons.txt"));
                    db.SaveChanges();
                }
                if (db.Mediums.Count() == 0)
                {
                    var mediums = SvcImport.ImportMediums3(@"../../../Data/spiegel-bestseller.txt");
                    db.AddRange(mediums);
                    db.SaveChanges();
                }
                if (db.Items.Count() == 0)
                {
                    db.Add(new Item()); // { Id = 1000 });
                    db.Add(new Item());
                    db.Add(new Item());
                    db.SaveChanges();
                }

                GsoLogger.LoggingEnabled = true;

                //ShowStuff();

                var svc  = new SvcCityLibrary(db);
                var menu = new UiMenu(svc);
                while (true)
                {
                    menu.ShowMainMenu();
                    Console.ReadLine();
                }

                Console.WriteLine("\nDone.");
                Console.ReadLine();
            }
        }