Beispiel #1
0
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            // * START CHANGES
            // Request of connection parameters to be placed in a new class
            // that manages the connection errors to the database
            // and saves new connection parameters into a text file

            // Setting the Default parametrers
            string dbusername = "******";
            string dbpwd      = "postgres";
            string dbname     = "fishing_tracker";


            // Creating disposable variables
            string dbusernew  = dbusername;
            string dbpwdnew   = dbpwd;
            string dbnamenew  = dbname;
            string userchoice = "";
            bool   correct    = false;


            // There have to be a chance to modify the connection parameters
            // Requesting Connection Parameters to the user

            do
            {
                Console.Clear();
                Console.WriteLine("This console application requires a connection to his postgresql database.");
                Console.WriteLine("Default parametes will be used, otherwise.");
                Console.Write("\n Do you want to set new connection parameters (username, password, databasename) ? [K / E]:");
                userchoice = Console.ReadLine();

                userchoice = userchoice.ToUpperInvariant();

                if (userchoice == "K")
                {
                    Console.Clear();

                    Console.WriteLine("Please provide new parameters to connect to the postgresql database.");
                    Console.Write("Database username [{0}]: ", dbusernew);
                    dbusernew = Console.ReadLine();
                    Console.Write("Database password [{0}]: ", dbpwdnew);
                    dbpwdnew = Console.ReadLine();
                    Console.Write("Database name [{0}]:", dbnamenew);
                    dbnamenew = Console.ReadLine();

                    Console.Write("Please check the correctness of the parameters that you gave.\n" +
                                  "The connection string is: Host=localhost;Username={0};Password={1};Database={2}; !\n" +
                                  "Are you sure to proceed [K / E]: ", dbusernew, dbpwdnew, dbnamenew);
                    userchoice = Console.ReadLine();
                    userchoice = userchoice.ToUpperInvariant();

                    if (userchoice == "K")
                    {
                        correct = true;
                    }
                    else
                    {
                        // It's important to get
                        Console.WriteLine("\n Please retry to provide the parameters. \n Press any key to retry.");
                        Console.ReadKey();
                    }
                }
                else if (userchoice == "E")
                {
                    Console.WriteLine("\n Default parameters will be used to access to the local postgresql database.");
                    dbusernew = dbusername;
                    dbpwdnew  = dbpwd;
                    dbnamenew = dbname;
                    correct   = true;
                    // Print to screen for debug
                    Console.WriteLine("The connection string is: Host=localhost;Username="******";Password="******"; Database=" + dbnamenew + "; !");
                }
                // Repeat the cicle if input differet from "K" or "E"
            } while (!correct);



            // Luodaan tietokantayhteys

            string connection = "Host=localhost;Username="******";Password="******"; Database=" + dbnamenew + ";";

            // ** END CHANGES

            // Previous code:
            // string connection = "Host=localhost;Username=postgres;Password=postgres;Database=fishing_tracker";


            // It would be safe to catch errors in connection to the database
            // and exit gracefully using a try {} catch {}
            // reference here: https://www.npgsql.org/doc/
            // or a "using" statement
            // ref:
            // https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cd3f4ea4-f7fd-4f52-8507-bc4a578e5607/c-exception-when-the-database-is-downnot-able-to-connect?forum=csharpgeneral
            // https://www.c-sharpcorner.com/article/the-using-statement-in-C-Sharp/

            var conn = new NpgsqlConnection(connection);

            conn.Open();
            conn.Close(); // why this closure of the connection?

            // Valikon toiminnallisuuksien luominen applikaatiolle
            {
                // Listat tietojen tallentamista varten

                List <Fishingsession> kalastussuoritus = new List <Fishingsession>();
                List <Fishingtrip>    kalastusmatka    = new List <Fishingtrip>();
                List <Catch>          saaliit          = new List <Catch>();

                // Tulostetaan valikko
                Mainoperations.TulostaValikko();

                // Jatketaan ohjelmaa
                bool jatkaohjelmaa = true;

                while (jatkaohjelmaa)
                {
                    Console.WriteLine("Valitse toiminto"); // Käyttäjä valitsee toiminnon kirjaimen mukaan
                    string komento = Console.ReadLine();
                    switch (komento)
                    {
                    case "m":     // aloitetaan kalastus ja lisätään kalastusmatkan tiedot
                        Console.Clear();
                        Console.WriteLine("Anna kalastusmatkan tiedot");
                        Console.WriteLine("-----------------------------------------------");
                        Console.Write("Paikka: ");
                        String place = Console.ReadLine();
                        Console.Write("Kalastajan nimi: ");
                        String fisherName = Console.ReadLine();

                        bool competition = false;
                        bool valinta     = true;
                        do     // Ohjelma kysyy käyttäjältä onko kalastusmatka kisa? Ohjelma tarkistaa syötetyn arvon, että se on oikein.
                        {
                            Console.Write("Onko kalastusmatka kisa? K/E: ");
                            String vastaus = Console.ReadLine();

                            if (vastaus == "K")     // Lisätään listaan ja tallennetaan myös kisannimi
                            {
                                Console.Write("Anna kalastuskisan nimi:");
                                String competitionName = Console.ReadLine();
                                valinta     = false;
                                competition = true;

                                // Lisätään kalastusmatkan tiedot listaan
                                kalastusmatka.Add(new Fishingtrip(place, fisherName, competition));
                                kalastusmatka[0].SetCompetitionName(competitionName);
                            }
                            else if (vastaus == "E")     // Lisätään listaan, mutta ei tallenneta kisan nimeä
                            {
                                Console.WriteLine("Kalastusmatka ei ole kilpailu");
                                competition = false;
                                valinta     = false;
                                kalastusmatka.Add(new Fishingtrip(place, fisherName, competition));
                            }
                            else
                            {
                                Console.WriteLine("Väärä arvo");
                            }
                        } while (valinta);

                        // Lisätään matkanaloitusaika aikaleimalla
                        DateTime startTime = DateTime.Now;
                        string   format1   = "d.M.yyyy HH:mm";
                        kalastusmatka[0].SetTripStartTime(startTime);

                        Console.Clear();

                        // Tulostetaan kalastusmatkan tiedot
                        Console.WriteLine($"Paikka: {kalastusmatka[0].GetPlace()}");
                        Console.WriteLine($"Kalastaja: {kalastusmatka[0].GetFisherName()}");
                        if (competition)         // Jos kalastusmatka on kisa, tulostetaan kisan nimi
                        {
                            Console.WriteLine($"Kalastuskisan nimi: {kalastusmatka[0].GetCompetitionName()}");
                        }
                        Console.WriteLine($"Päivämäärä ja aika: { startTime.ToString(format1) }");
                        Console.WriteLine("-----------------------------------------------\n");

                        Console.WriteLine("Uusi kalastusmatka aloitettu\n");
                        Console.WriteLine("Seuraavaksi voit aloittaa kalastussuorituksen");

                        // Tulostetaan valikko kalastussuoritukselle
                        Mainoperations.TulostaSuoritusValikko();
                        break;


                    case "s":     // aloiteaan kalastussuoritus, kysytään käyttäjältä vieheen tiedot, kalastustapa ja merkitään suorituksen aloitusaika
                        Console.Clear();

                        Console.Write("Anna vieheen nimi: ");
                        String lureName = Console.ReadLine();
                        Console.Write("Anna vieheen tyyppi: ");
                        String lureType = Console.ReadLine();
                        Console.Write("Anna kalastustapa: ");
                        String fishingStyle = Console.ReadLine();
                        Console.Write(" \n");
                        DateTime sessionStartTime = DateTime.Now;
                        string   format2          = "d.M.yyyy HH:mm";

                        Console.Clear();

                        // Luodaan ilmentymä ja tallennetaan tiedot listaan
                        kalastussuoritus.Add(new Fishingsession(lureName, lureType, fishingStyle, sessionStartTime));

                        // Tulostetaan suorituksen tiedot
                        Console.WriteLine($"Vieheen nimi: {kalastussuoritus[0].GetLureName()}");
                        Console.WriteLine($"Vieheen tyyppi: {kalastussuoritus[0].GetLureType()}");
                        Console.WriteLine($"Kalastustapa: {kalastussuoritus[0].GetFishingStyle()}");
                        Console.WriteLine($"Päivämäärä ja aika: { sessionStartTime.ToString(format2) }\n");
                        Console.WriteLine("Kalastus suoritus aloitettu\n");

                        // Kalastus suoritukselle voidaan luoda useita saaliita ja suoritus päätetään käyttäjän niin valitessa ja asettamalla lopetusaika.
                        string fish = "";
                        int    kalalajinvalinta;
                        bool   jatkasessiota = true;
                        while (jatkasessiota)
                        {
                            Console.WriteLine("Lisää saalis valitsemalla [1] \n");
                            Console.WriteLine("Lopeta kalastussuoritus valitsemalla [0] \n");
                            string valitse = Console.ReadLine();
                            switch (valitse)
                            {
                            case "1":         // Käyttäjältä kysytään saaliin tiedot, kalalaji, paino ja pituus
                                do
                                {
                                    Console.WriteLine("Anna saalin tiedot\n");
                                    Console.WriteLine("Kalalaji: Hauki[1], Kuha[2], Ahven[3] ");
                                    Console.Write("Valitse kalalaji: ");
                                    kalalajinvalinta = int.Parse(Console.ReadLine());
                                } while (kalalajinvalinta != (1) && kalalajinvalinta != (2) && kalalajinvalinta != (3));
                                if (kalalajinvalinta == 1)
                                {
                                    fish             = "Hauki";
                                    kalalajinvalinta = 1;
                                }
                                if (kalalajinvalinta == 2)
                                {
                                    fish             = "Kuha";
                                    kalalajinvalinta = 2;
                                }
                                if (kalalajinvalinta == 3)
                                {
                                    fish             = "Ahven";
                                    kalalajinvalinta = 3;
                                }
                                Console.Write("Kalan paino (kg): ");
                                int weight = int.Parse(Console.ReadLine());
                                Console.Write("Kalan pituus (cm): ");
                                int      lenght   = int.Parse(Console.ReadLine());
                                DateTime fishtime = DateTime.Now;
                                fishtime.ToString("dd.MM.yyyy hh:mm");
                                Console.Clear();

                                // Lisätään kala listaan ja tulostetaan
                                saaliit.Add(new Catch(fish, weight, lenght, fishtime));
                                Console.WriteLine($"{fish} , {weight} Kg , {lenght} Cm , saalistusaika {fishtime}");
                                Console.WriteLine("Lisätty suoritukselle\n");

                                // Lisätään kala tietokantaan
                                conn.Open();
                                using (var kala = new NpgsqlCommand("insert into catch(fk_fish, fish_weight, fish_lenght) values ('" + kalalajinvalinta + "','" + weight + "', '" + lenght + "') ", conn))
                                {
                                    await kala.ExecuteNonQueryAsync();
                                }
                                conn.Close();
                                break;

                            case "0":         // Lopetetaan kalastussuoritus ja lisätään lopetusaika

                                kalastussuoritus[0].SetSessionEndTime(DateTime.Now);
                                Console.WriteLine($"Kalastus suoritus lopetettiin kello {kalastussuoritus[0].GetSessionEndTime()} ");
                                // Tulostetaan valikko
                                Mainoperations.TulostaMatkaKeskenValikko();
                                jatkasessiota = false;
                                break;

                            default:
                                Console.WriteLine("Valitsit väärin");
                                break;
                            }
                        }

                        break;

                    case "a":     // Analysoidaan kalastusta ja tulostetaan historia tietoja
                                  // Lasketaan tietyllä vieheellä saadut kalat.
                        bool jatkaanalyysia = true;
                        while (jatkaanalyysia)
                        {
                            Console.WriteLine("Näytä kalastusmatkan kalat ja yhteispaino [1] \n");
                            Console.WriteLine("Näytä kaikki saadut kalat [2] \n");
                            Console.WriteLine("Näytä kalastusmatkan kesto [3] \n");
                            Console.WriteLine("Näytä valikko [4] \n");
                            string valitse = Console.ReadLine();
                            switch (valitse)
                            {
                            case "1":         //Tulostaa kalastusmatkalla saadut kalat ja näytetään kalojen yhteispaino.
                                Console.Clear();
                                foreach (Catch item in saaliit)
                                {
                                    Console.Write($"{item.GetFishSpecies()} ");
                                    Console.Write($"{item.GetFishWeight()} Kg ");
                                    Console.Write($"{item.GetFishLenght()} Cm ");
                                    Console.WriteLine("");
                                }
                                Console.WriteLine($"Kaloja saatu tällä kalastusmatkalla: {saaliit[0].GetFishCount()} ");
                                Console.WriteLine($"Kalojen yhteispaino: {saaliit[0].GetWeightSum()} kiloa");
                                Console.WriteLine();

                                break;

                            case "2":         // Haetaan kaikki saadut kalat tietokannasta
                                Console.Clear();
                                Console.WriteLine("Kaikki kalat tulostetaan tietokannasta");
                                conn.Open();
                                using (var cmd = new NpgsqlCommand("SELECT species, fish_weight, fish_lenght FROM catch INNER JOIN fish ON catch.fk_fish = fish.id_fish", conn))
                                    using (var reader = await cmd.ExecuteReaderAsync())
                                        while (await reader.ReadAsync())
                                        {
                                            Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)} Kg {reader.GetInt32(2)} Cm");
                                        }
                                conn.Close();

                                break;

                            case "3":         // Kalastusmatkan kesto
                                Console.Clear();
                                TimeSpan fishingTime = (kalastusmatka[0].GetStartTime() - DateTime.Now);
                                Console.WriteLine($"Kalastusmatkan kesto: {fishingTime.ToString("hh\\:mm\\:ss")}");
                                break;

                            case "4":
                                Mainoperations.TulostaMatkaKeskenValikko();
                                jatkaanalyysia = false;
                                break;

                            default:
                                Console.WriteLine("Valitsit väärin");
                                break;
                            }
                        }
                        break;

                    case "l":     // Lopetetaan kalastusmatka ja tulostetaan lopetusaika.
                        kalastusmatka[0].SetTripEndTime(DateTime.Now);
                        Console.WriteLine($"Kalastusmatka lopetettiin aikaan: {kalastusmatka[0].GetTripEndTime()} ");
                        Mainoperations.TulostaValikko();

                        break;

                    case "q":     // ohjelma lopetetaan
                        jatkaohjelmaa = false;

                        break;

                    default:
                        Console.WriteLine("Valitsit väärin");
                        break;
                    }
                }
            }
        }
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            // Luodaan tietokantayhteys
            // tietokannan SQL scripti löytyy Githubin repositoriosta
            SQL.SqlConnection();
            {
                // Listat tietojen tallentamista varten
                List <Fishingsession> kalastussuoritus = new List <Fishingsession>();
                List <Fishingtrip>    kalastusmatka    = new List <Fishingtrip>();
                List <Catch>          Catch            = new List <Catch>();

                // Tulostetaan valikko
                Mainoperations.TulostaValikko();

                // Jatketaan ohjelmaa
                bool jatkaohjelmaa = true;
                while (jatkaohjelmaa)
                {
                    // Kysytään käyttäjältä suoritettava toiminto
                    string komento = Console.ReadLine();
                    switch (komento)
                    {
                    case "m":     // aloitetaan kalastusmatka ja lisätään kalastusmatkan tiedot
                        Console.Clear();
                        Console.WriteLine("Anna kalastusmatkan tiedot");
                        Console.WriteLine("-----------------------------------------------");
                        Console.Write("Paikka: ");
                        string place = Console.ReadLine();
                        Console.Write("Kalastajan nimi: ");
                        String fisherName = Console.ReadLine();

                        bool competition = false;
                        bool valinta     = true;
                        do     // Ohjelma kysyy käyttäjältä onko kalastusmatka kisa? Ohjelma tarkistaa syötetyn arvon, että se on oikein.
                        {
                            Console.Write("Onko kalastusmatka kisa? K/E: ");
                            String vastaus = Console.ReadLine();

                            if (vastaus == "K")     // Lisätään listaan ja tallennetaan myös kisannimi
                            {
                                Console.Write("Anna kalastuskisan nimi:");
                                String competitionName = Console.ReadLine();
                                valinta     = false;
                                competition = true;

                                // Lisätään kalastusmatkan tiedot listaan
                                kalastusmatka.Add(new Fishingtrip(place, fisherName, competition));
                                kalastusmatka[0].SetCompetitionName(competitionName);
                            }
                            else if (vastaus == "E")     // Lisätään listaan, mutta ei tallenneta kisan nimeä
                            {
                                Console.WriteLine("Kalastusmatka ei ole kilpailu");
                                competition = false;
                                valinta     = false;
                                kalastusmatka.Add(new Fishingtrip(place, fisherName, competition));
                            }
                            else
                            {
                                Console.WriteLine("Väärä arvo");
                            }
                        } while (valinta);

                        // Lisätään matkanaloitusaika aikaleimalla
                        DateTime startTime = DateTime.Now;
                        string   format1   = "d.M.yyyy HH:mm";
                        kalastusmatka[0].SetTripStartTime(startTime);

                        Console.Clear();

                        // Tulostetaan kalastusmatkan tiedot
                        Console.WriteLine($"Paikka: {kalastusmatka[0].GetPlace()}");
                        Console.WriteLine($"Kalastaja: {kalastusmatka[0].GetFisherName()}");
                        if (competition)     // Jos kalastusmatka on kisa, tulostetaan kisan nimi
                        {
                            Console.WriteLine($"Kalastuskisan nimi: {kalastusmatka[0].GetCompetitionName()}");
                        }
                        Console.WriteLine($"Päivämäärä ja aika: { startTime.ToString(format1) }");
                        Console.WriteLine("-----------------------------------------------\n");

                        Console.WriteLine("Uusi kalastusmatka aloitettu\n");
                        Console.WriteLine("Seuraavaksi voit aloittaa kalastussuorituksen");

                        // Tulostetaan valikko kalastussuoritukselle
                        Mainoperations.TulostaSuoritusValikko();
                        break;


                    case "s":     // aloiteaan kalastussuoritus, kysytään käyttäjältä vieheen tiedot, kalastustapa ja merkitään suorituksen aloitusaika
                        Console.Clear();

                        Console.Write("Anna vieheen nimi: ");
                        String lureName = Console.ReadLine();
                        Console.Write("Anna vieheen tyyppi: ");
                        String lureType = Console.ReadLine();
                        Console.Write("Anna kalastustapa: ");
                        String fishingStyle = Console.ReadLine();
                        Console.Write(" \n");
                        DateTime sessionStartTime = DateTime.Now;
                        string   format2          = "d.M.yyyy HH:mm";

                        Console.Clear();

                        // Luodaan ilmentymä ja tallennetaan tiedot listaan
                        kalastussuoritus.Add(new Fishingsession(lureName, lureType, fishingStyle, sessionStartTime));

                        // Tulostetaan suorituksen tiedot
                        Console.WriteLine($"Vieheen nimi: {kalastussuoritus[0].GetLureName()}");
                        Console.WriteLine($"Vieheen tyyppi: {kalastussuoritus[0].GetLureType()}");
                        Console.WriteLine($"Kalastustapa: {kalastussuoritus[0].GetFishingStyle()}");
                        Console.WriteLine($"Päivämäärä ja aika: { sessionStartTime.ToString(format2) }\n");
                        Console.WriteLine("Kalastus suoritus aloitettu\n");

                        // Kalastus suoritukselle voidaan luoda useita saaliita ja suoritus päätetään käyttäjän niin valitessa ja asettamalla lopetusaika.
                        int    kalalajinvalinta = 0;
                        string fish             = "";
                        bool   jatkasessiota    = true;
                        while (jatkasessiota)
                        {
                            Console.WriteLine("Lisää saalis valitsemalla [1] \n");
                            Console.WriteLine("Lopeta kalastussuoritus valitsemalla [0] \n");
                            string valitse = Console.ReadLine();
                            switch (valitse)
                            {
                            case "1":      // Käyttäjältä kysytään saaliin tiedot, kalalaji, paino ja pituus
                                do         // kysytään kalalaji
                                {
                                    try
                                    {
                                        Console.WriteLine("Valitse kalalaji: Hauki[1], Kuha[2], Ahven[3] ");
                                        Console.Write("Anna numero: ");
                                        kalalajinvalinta = int.Parse(Console.ReadLine());
                                    }
                                    catch (Exception)
                                    {
                                        Console.WriteLine("Vain numerot hyväksytään, Anna numero 1, 2 tai 3");
                                    }
                                } while (kalalajinvalinta != (1) && kalalajinvalinta != (2) && kalalajinvalinta != (3));
                                if (kalalajinvalinta == 1)
                                {
                                    fish             = "Hauki";
                                    kalalajinvalinta = 1;
                                }
                                if (kalalajinvalinta == 2)
                                {
                                    fish             = "Kuha";
                                    kalalajinvalinta = 2;
                                }
                                if (kalalajinvalinta == 3)
                                {
                                    fish             = "Ahven";
                                    kalalajinvalinta = 3;
                                }

                                // Lisätään paino ja pituus ja varmistetaan, että arvo on numero
                                do
                                {
                                    Console.Write("Kalan paino numeroina (kg): ");
                                } while (!int.TryParse(Console.ReadLine(), out weight));
                                do
                                {
                                    Console.Write("Kalan pituus numeroina (Cm): ");
                                } while (!int.TryParse(Console.ReadLine(), out lenght));

                                // Lisätään pvm ja aika
                                NpgsqlDateTime fishtime = NpgsqlDateTime.Now;
                                Console.Clear();
                                // Luodaan olio
                                Catch uusisaalis = new Catch(kalalajinvalinta, fish, weight, lenght, fishtime);

                                // Lisätään kala listaan ja tulostetaan
                                Catch.Add(uusisaalis);
                                Console.WriteLine($"{fish} , {weight} Kg , {lenght} Cm , saalistusaika {fishtime}");
                                Console.WriteLine("Lisätty suoritukselle\n");

                                // Lisätään kala tietokantaan
                                SQL.AddFish(uusisaalis);
                                break;

                            case "0":         // Lopetetaan kalastussuoritus ja lisätään lopetusaika
                                Console.Clear();
                                kalastussuoritus[0].SetSessionEndTime(DateTime.Now);
                                Console.WriteLine($"Kalastus suoritus lopetettiin aikaan {kalastussuoritus[0].GetSessionEndTime()} ");
                                // Tulostetaan valikko
                                Mainoperations.TulostaMatkaKeskenValikko();
                                jatkasessiota = false;
                                break;

                            default:
                                Console.WriteLine("Valitsit väärin");
                                break;
                            }
                        }

                        break;

                    case "a":     // Analysoidaan kalastusta ja tulostetaan historia tietoja
                                  // Lasketaan tietyllä vieheellä saadut kalat.
                        bool jatkaanalyysia = true;
                        while (jatkaanalyysia)
                        {
                            Console.WriteLine("Näytä kalastusmatkan kalat ja yhteispaino [1] \n");
                            Console.WriteLine("Näytä kaikki saadut kalat [2] \n");
                            Console.WriteLine("Näytä kalastusmatkan kesto [3] \n");
                            Console.WriteLine("Näytä valikko [4] \n");
                            string valitse = Console.ReadLine();
                            switch (valitse)
                            {
                            case "1":         //Tulostaa kalastusmatkalla saadut kalat ja näytetään kalojen yhteispaino.
                                Console.Clear();
                                foreach (Catch item in Catch)
                                {
                                    Console.Write($"{item.GetFishSpecies()} ");
                                    Console.Write($"{item.GetFishWeight()} Kg ");
                                    Console.Write($"{item.GetFishLenght()} Cm ");
                                    Console.WriteLine($"Saalistusaika: {item.GetFishTime()} ");
                                    Console.WriteLine("");
                                }
                                Console.WriteLine($"Kaloja saatu tällä kalastusmatkalla: {Catch[0].GetFishCount()} ");
                                Console.WriteLine($"Kalojen yhteispaino: {Catch[0].GetWeightSum()} kiloa");
                                Console.WriteLine();

                                break;

                            case "2":         // Haetaan kaikki saadut kalat tietokannasta
                                Console.Clear();
                                Console.WriteLine("Kaikki kalat tulostetaan tietokannasta");
                                SQL.SelectKaikkiSaaliit();

                                break;

                            case "3":         // Näytetään Kalastusmatkan kesto
                                Console.Clear();
                                TimeSpan fishingTime = (kalastusmatka[0].GetStartTime() - DateTime.Now);
                                Console.WriteLine($"Kalastusmatkan kesto: {fishingTime.ToString("hh\\:mm\\:ss")}");
                                break;

                            case "4":         // Poistutaan analyysiosiosta
                                Console.Clear();
                                Mainoperations.TulostaMatkaKeskenValikko();
                                jatkaanalyysia = false;
                                break;

                            default:
                                Console.WriteLine("Valitsit väärin");
                                break;
                            }
                        }
                        break;

                    case "l":     // Lopetetaan kalastusmatka ja tulostetaan lopetusaika.
                        Console.Clear();
                        kalastusmatka[0].SetTripEndTime(DateTime.Now);
                        Console.WriteLine($"Kalastusmatka lopetettiin aikaan: {kalastusmatka[0].GetTripEndTime()} ");
                        Mainoperations.TulostaValikko();

                        break;

                    case "q":     // ohjelma lopetetaan
                        jatkaohjelmaa = false;

                        break;

                    default:
                        Console.WriteLine("Valitsit väärin");
                        break;
                    }
                }
            }
        }