package waluty;

import java.math.BigDecimal;
import java.util.Scanner;

import org.apache.commons.lang3.StringUtils;

public class PrzelicznikWalutKonsola_v2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("Wybierz format komunikacji: xml | json");
		String rodzaj = sc.nextLine();
		Pobieranie pobieranie = Pobieranie.utworz(rodzaj);
		
		System.out.println("Podaj datę w formacie YYYY-MM-DD lub naciśnij enter, aby pobrać najświeższe kursy.");
		String data = sc.nextLine();
		Tabela tabela;
		if(StringUtils.isBlank(data)) {
			System.out.println("Pobieram aktualne kursy...");
			tabela = pobieranie.pobierzBiezaceKursy();
		} else {
			System.out.println("Pobieram kursy archiwalne...");
			tabela = pobieranie.pobierzArchiwalneKursy(data);
		}
		System.out.println(tabela);
		
		while(true) {
			System.out.print("\nPodaj kod waluty: ");
			String kod = sc.nextLine().trim().toUpperCase();
			if(kod == null || kod.isEmpty())
				break;
			
			Waluta waluta = tabela.wyszukaj(kod);
			if(waluta == null) {
				System.out.println("Nie ma takiej waluty.");
				continue;
			}
			
			System.out.println("Wybrana waluta: " + waluta.getNazwa());
			System.out.println("Aktualny kurs " + waluta.getKurs());
			System.out.println();
			
			System.out.print("Podaj kwotę: ");
			if(!sc.hasNextBigDecimal()) {
				System.out.println("Nieprawidłowa kwota.");
				continue;
			}
			BigDecimal kwota = sc.nextBigDecimal();
			sc.nextLine();
			
			System.out.println(kwota + " " + kod + " = "
					+ waluta.przeliczNaZlote(kwota) + " PLN");
			
			System.out.println(kwota + " PLN " + " = "
					+ waluta.przeliczNaWalute(kwota) + " " + kod);
		}
	}
}
