public void SmashTheKeyboardNumeroInput()
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            string nimi     = "45";
            string expected = "Asemaa ei löydy!";
            string actual   = Asema.SmashTheKeyboard(rata.Liikennepaikat(), nimi);

            Assert.AreEqual(expected, actual, "Tyhjää inputtia ei osata käsitellä!");
        }
        public void NumeroitaNimessä()
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            string nimi     = "12312lApUa";
            string expected = "LPA";
            string actual   = Asema.EtsiAsema(rata.Liikennepaikat(), Asema.Trimmeri(nimi));

            Assert.AreEqual(expected, actual, "Ylimääräisiä merkkejä alussa ja lopussa!");
        }
        public void EtsiAsemaNumeroInput()
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            string nimi     = "45";
            string expected = null;
            string actual   = Asema.EtsiAsema(rata.Liikennepaikat(), nimi);

            Assert.AreEqual(expected, actual, "Tyhjää inputtia ei osata käsitellä!");
        }
        public void OlematonKaupunginNimi()
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            string nimi     = "Virtanen";
            string expected = null;
            string actual   = Asema.EtsiAsema(rata.Liikennepaikat(), nimi);

            Assert.AreEqual(expected, actual, "Ei ole kaupunki!");
        }
Beispiel #5
0
        private static void tulostaJunatVälillä(string lähtöasema, string kohdeasema)
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();

            List <Juna> junat = rata.JunatVälillä(lähtöasema, kohdeasema);
            string      s     = string.Join(", ", junat.Select(j => j.trainNumber + " " + j.trainType));

            Console.WriteLine($"Junat {lähtöasema} ==> {kohdeasema}: " + s);
        }
        public void IsotJaPienetKirjaimetTest()
        {
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            string nimi     = "lApUA";
            string expected = "LPA";

            nimi = Asema.Trimmeri(nimi);
            string actual = Asema.EtsiAsema(rata.Liikennepaikat(), nimi);

            Assert.AreEqual(expected, actual, "Isot ja pienet kirjaimet pielessä!");
        }
Beispiel #7
0
        private static void tulostaAsemat(string asema)
        {
            List <Liikennepaikka> paikat;

            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil();
            paikat = rata.Liikennepaikat();
            foreach (var item in paikat.Where(p => p.type == "STATION"))
            {
                if (item.stationName.StartsWith(asema))
                {
                    Console.WriteLine(item.stationName + " - " + item.stationShortCode);
                }
            }
        }
Beispiel #8
0
        public static string EtsiJuna(string junanNumero)                                                            // Tässä haetaan junan numeron avulla junan tyyppi
        {
            char[] charsToTrim = { ' ', ',', '.', '?', '!', '@', 'I', 'i', 'C', 'c', 'P', 'p', 'H', 'h', 'S', 's' }; // Tässä trimmataan syötteestä pois typot.

            junanNumero = junanNumero.Trim(charsToTrim);

            bool testi = int.TryParse(junanNumero, out int oikeanro); // Testataan onko syöte int-muotoinen

            if (testi == false)
            {
                return("Et syöttänyt numeroa!");
                //return false; // Poistettu, kun muutettu metodi string-muotoon
            }

            if (junanNumero.ToString().Length > 5 || oikeanro == 0) // Rajoitetaan merkkien määrä viiteen ja erisuureksi kuin nolla
            {
                return("Junan numero voi olla välillä 1-99999");    // Rajataan junannumero välille 1-99999
                //return false;
            }

            Console.Clear();

            string odotusTeksti = "Haetaan tietoa, odota hetki...";

            //for(int i=0;i<=5;i++) // Vilkkuvan odotustekstin toteutus
            //{
            //    Console.WriteLine(odotusTeksti);
            //    Thread.Sleep(1000);
            //    Console.Clear();
            //    Thread.Sleep(1000);
            //}
            RataDigiTraffic.APIUtil rata = new RataDigiTraffic.APIUtil(); //junan tietojen haku API:lta
            //List<Juna> junat = rata.JunaNumerolla(oikeanro);
            Task <List <Juna> > hakutaski = new Task <List <Juna> >(() => rata.JunaNumerolla(oikeanro));

            hakutaski.Start();
            Console.Write(odotusTeksti);
            while (!hakutaski.IsCompleted)
            {
                // Odotus-teksti vilkkuu samaan aikaan kun haku tapahtuu
                Console.Write(".");     // Muutettu niin, että pisteet lisääntyvät odotus-tekstissä samaan aikaan kun haku tapahtuu
                Thread.Sleep(2000);
                //Console.Clear();
                //Thread.Sleep(1000);
            }
            List <Juna> junat = hakutaski.Result;

            string EtsiAsemannimiShortCodesta(List <Liikennepaikka> lista, string nimi)
            {
                //Etsitään käyttäjän syöte listasta
                foreach (var item in lista)
                {
                    if (item.stationShortCode == nimi)
                    {
                        return(item.stationName.PadRight(20));
                    }
                    else
                    {
                        continue;
                    }
                }

                return(null);
            }

            foreach (var item in junat)
            {
                if (item.trainNumber == oikeanro) //{ return item.trainType; }
                {
                    string junanKulku = "";
                    if (item.runningCurrently == true)
                    {
                        junanKulku = "Juna on liikkeellä";
                    }
                    if (item.runningCurrently == false)
                    {
                        junanKulku = "Juna ei ole liikenteessä";
                    }
                    Console.WriteLine("\n\n" + item.trainType + item.trainNumber + " " + item.departureDate.ToString("dd.MM.yyyy") + " " + junanKulku);

                    Console.WriteLine("\n\nAseman nimi" + "\t" + "" + "\t\t\t\t" + "KLO" + "\t\t" + "Arvioitu aika" + "\t" + "Toteutunut aika");
                    foreach (var rivi in item.timeTableRows)
                    {
                        string pysähdyksenTyyppi = "";
                        //if (rivi.type.Contains("ARRIVAL"))
                        //    pysähdyksenTyyppi = "tulo";
                        //if (rivi.type.Contains("DEPARTURE"))
                        //    pysähdyksenTyyppi = "lähtö";

                        if (rivi.commercialStop == true && rivi.type.Contains("ARRIVAL"))
                        {
                            pysähdyksenTyyppi = "tulo";
                            Console.WriteLine(EtsiAsemannimiShortCodesta(rata.Liikennepaikat(), rivi.stationShortCode) + "\t\t\t" + pysähdyksenTyyppi + "\t" + rivi.scheduledTime.ToLocalTime().ToString("HH:mm") + "\t\t"
                                              + (rivi.liveEstimateTime > default(DateTime) ? rivi.liveEstimateTime.ToLocalTime().ToString("HH:mm") : "")
                                              + "\t\t" + (rivi.actualTime > default(DateTime) ? rivi.actualTime.ToLocalTime().ToString("HH:mm") : "               "));
                        }

                        if (rivi.commercialStop == true && rivi.type.Contains("DEPARTURE"))
                        {
                            Console.BackgroundColor = ConsoleColor.DarkMagenta;
                            Console.ForegroundColor = ConsoleColor.White;

                            pysähdyksenTyyppi = "lähtö";
                            Console.WriteLine(EtsiAsemannimiShortCodesta(rata.Liikennepaikat(), rivi.stationShortCode) + "\t\t\t" + pysähdyksenTyyppi + "\t" + rivi.scheduledTime.ToLocalTime().ToString("HH:mm") + "\t\t"
                                              + (rivi.liveEstimateTime > default(DateTime) ? rivi.liveEstimateTime.ToLocalTime().ToString("HH:mm") : "")
                                              + "\t\t" + (rivi.actualTime > default(DateTime) ? rivi.actualTime.ToLocalTime().ToString("HH:mm") : "               ")); // Muokattu koodia niin, että hakee aseman lyhenteen, pysähdyksen tyypin ja lokalisoidun ajan näille.

                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                    }
                    return("");
                }
            }
            return("Syöttämääsi junaa ei löydy, tarkista antamasi numero");
            //return false;
        }