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!"); }
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ä!"); }
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); } } }
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; }