#include "jsonutil.h" #include "database.h" #include #include void JsonUtil::exportSellers(const std::string& filename, Marketplace* market) { Json::Value root; std::ofstream file(filename); Json::StreamWriterBuilder builder; builder["commentStyle"] = "None"; builder["indentation"] = " "; std::unique_ptr writer(builder.newStreamWriter()); for (const auto& seller : market->getSellers()) { Json::Value newEntry; newEntry["uuid"] = seller->getUuidAsString(); newEntry["seller_no"] = seller->getSellerNo(); newEntry["last_name"] = seller->getLastName(); newEntry["first_name"] = seller->getFirstName(); newEntry["num_offered_articles"] = seller->numArticlesOffered(); root["sellers"].append(newEntry); } writer->write(root, &file); } void JsonUtil::importSellers(const std::string& filename, Marketplace* market) { for (auto& seller : market->getSellers()) { seller->setState(Seller::State::DELETE); } market->storeToDb(true); Json::Value jsonValues; std::ifstream file(filename); file >> jsonValues; for(auto val : jsonValues["sellers"]) { auto seller = std::make_unique(); seller->setUuidFromString(val["uuid"].asString()); seller->setSellerNo(val["seller_no"].asInt()); seller->setLastName(val["last_name"].asString()); seller->setFirstName(val["first_name"].asString()); seller->setNumArticlesOffered(val["num_offered_articles"].asInt()); market->getSellers().push_back(std::move(seller)); } market->storeToDb(); }