diff options
Diffstat (limited to 'oop2eindopdr/main.cpp')
| -rw-r--r-- | oop2eindopdr/main.cpp | 37 | 
1 files changed, 33 insertions, 4 deletions
| diff --git a/oop2eindopdr/main.cpp b/oop2eindopdr/main.cpp index 9a8c352..278d62f 100644 --- a/oop2eindopdr/main.cpp +++ b/oop2eindopdr/main.cpp @@ -38,15 +38,44 @@ int interactive_mode() {  }  int export_mode(int argc, char** argv) { +	cout << "entering export mode..." << endl;  	std::string csv_file = argv[1];  	std::string zip_file = argc == 3 ? argv[2] : ""; -	while (zip_file.size() == 0) { // make sure target file is given + +	ZipExport zip_export; +	zip_export.set_pokedex(g_pokedex); +	std::vector<std::string> card_ids = zip_export.import_csv(csv_file); +	std::vector<PokemonCard*> cards; +	for (std::string card_id : card_ids) { +		PokemonCard* card = g_pokedex->get_card_by_id(card_id); +		if (card == nullptr) { +			cout << "could not find card with id " << card_id << endl; +			continue; +		} +		card->fetch_market_value(); +		cards.push_back(card); +	} + +	double total_value = 0.f; +	for (PokemonCard* card : cards) { +		cout << card->short_identifier() << " currently sells for " << card->value << endl; +		total_value += card->value; +	} +	cout << "sum value of cards: " << total_value << endl; + +	if (zip_file.size() == 0) { +		cout << "export as zip? [Y/n]: "; +		std::string export_yn; +		if (!std::getline(cin, export_yn)) return EXIT_SUCCESS; // exit if EOF (ctrl-d) +		if (export_yn.size() > 0 && (export_yn[0] | (1 << 5)) != 'y') +			return EXIT_SUCCESS; // exit if input is not 'Y', 'y', or <enter> +  		cout << "zip file location?: "; -		if (!std::getline(cin, zip_file)) break; +		if (!std::getline(cin, zip_file)) return EXIT_FAILURE;  	} -	cout << "exporting cards in " << csv_file << " to " << zip_file << endl; -	ZipExport zip_export(g_pokedex, csv_file, zip_file); +	cout << "exporting as zip..." << endl; +	zip_export.export_zip(zip_file, cards);  	return EXIT_SUCCESS;  } |