Exemple #1
0
        public void sorteraEfterÅlder()
        {
            List <Arbetare> temp1 = new List <Arbetare>(arbetare);
            List <Arbetare> temp2 = new List <Arbetare>();

            while (temp1.Count > 0)
            {
                Arbetare lägst = temp1[0];
                foreach (Arbetare a in temp1)
                {
                    if (a.ålder <= lägst.ålder)
                    {
                        lägst = a;
                    }
                }
                temp2.Add(lägst);
                temp1.Remove(lägst);
            }
            arbetare = temp2;
        }
        static void Main(string[] args)
        {
            Arbetare   arb1 = new Arbetare("Göran", 40, 25000, false);
            Robot      rob1 = new Robot("Mutte", "Monterare", "7B65");
            Tjänsteman tj1  = new Tjänsteman("Klas", 50, 50000, "VD");

            List <Resurs> resurser = new List <Resurs>();

            resurser.Add(arb1);
            resurser.Add(rob1);
            resurser.Add(tj1);

            List <ILöneutbetalning> löner = new List <ILöneutbetalning>();

            löner.Add(arb1);
            löner.Add(tj1);

            foreach (Resurs resurs in resurser)
            {
                resurs.VisaInfo();
            }

            foreach (ILöneutbetalning lön in löner)
            {
                lön.Lönesamtal();
            }
            Console.WriteLine();

            resurser.Add(new Arbetare("Hasse", 27, 50000, true));
            resurser.Add(new Arbetare("Gunnar", 45, 32000, false));
            List <Arbetare> arbetare = new List <Arbetare>();

            foreach (Resurs resurs in resurser)
            {
                if (resurs is Arbetare a)
                {
                    arbetare.Add(a);
                    Console.WriteLine($"La till {a.namn} i listan över arbetare");
                }
            }

            Arbetarregister reg1 = new Arbetarregister(arbetare);

            bool menuActive = true;

            while (menuActive == true)
            {
                Console.WriteLine("\nTryck 1 för att visa arbetare, 2 för att ta bort arbetare," +
                                  " 3 för att sortera efter lön, 4 för att sortera efter ålder och 5 för att avsluta");
                bool input = true;

                while (input == true)
                {
                    input = false;
                    switch (Console.ReadKey(true).Key)
                    {
                    case ConsoleKey.D1:
                        reg1.visaArbetare();
                        break;

                    case ConsoleKey.D2:
                        Console.WriteLine("\nSkriv in namnet på någon av dessa arbetare, " +
                                          "skriv 1 innan namnet för att göra skillnad på stora och små bokstäver\n\n");

                        foreach (Arbetare a in reg1.arbetare)
                        {
                            Console.Write(a.namn + " ");
                        }
                        Console.WriteLine();

                        string inmatning = Console.ReadLine();
                        inmatning = inmatning.Replace(" ", "");

                        bool caseSensitive = false;
                        if (inmatning[0] == '1')
                        {
                            caseSensitive = false;
                            inmatning.Remove(0, 1);
                        }

                        if (reg1.taBortArbetare(inmatning, caseSensitive) == false)
                        {
                            Console.WriteLine("Ingen arbetare med det namnet hittad");
                        }
                        break;

                    case ConsoleKey.D3:
                        reg1.sorteraEfterLön();
                        Console.WriteLine("Sorterade efter lön");
                        break;

                    case ConsoleKey.D4:
                        reg1.sorteraEfterÅlder();
                        Console.WriteLine("Soreterade efter ålder");
                        break;

                    case ConsoleKey.D5:
                        menuActive = false;
                        break;

                    default:
                        Console.WriteLine("Felaktig inmatning, försök igen");
                        input = true;
                        break;
                    }
                }
            }
            Console.Read();
        }