From 01577d02a08f82b2adf9b3d59cb3d3b261d9c880 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Sat, 24 Sep 2022 20:25:33 +0200 Subject: [PATCH] Do not ignore seller entries with empty names. fixes #23 --- src/core/csvreader.cpp | 22 +++++++++++++--------- src/core/excelreader.cpp | 21 +++++++++++++-------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/core/csvreader.cpp b/src/core/csvreader.cpp index 18a0a04..830b25a 100644 --- a/src/core/csvreader.cpp +++ b/src/core/csvreader.cpp @@ -39,11 +39,6 @@ std::size_t CsvReader::readSellersFromFile(const fs::path &filePath, Marketplace continue; } - if (row[2].get().empty() && row[3].get().empty()) { - ++rowCount; - continue; - } - auto seller = std::make_unique(); seller->setSellerNo(row[0].get()); if (row[1].is_int()) { @@ -51,10 +46,19 @@ std::size_t CsvReader::readSellersFromFile(const fs::path &filePath, Marketplace } else { seller->setNumArticlesOffered(0); } - std::string firstName = row[2].get(); - seller->setFirstName(trim(firstName)); - std::string lastName = row[3].get(); - seller->setLastName(trim(lastName)); + + // If both, first name and last name, are empty, use N. N. + // Else, use the real values. + if (row[2].get().empty() && row[3].get().empty()) { + seller->setFirstName("N."); + seller->setLastName("N."); + } else { + std::string firstName = row[2].get(); + seller->setFirstName(trim(firstName)); + std::string lastName = row[3].get(); + seller->setLastName(trim(lastName)); + } + market->getSellers().push_back(std::move(seller)); rowCount++; } diff --git a/src/core/excelreader.cpp b/src/core/excelreader.cpp index 82440ca..34e10c8 100644 --- a/src/core/excelreader.cpp +++ b/src/core/excelreader.cpp @@ -28,17 +28,22 @@ std::size_t ExcelReader::readSellersFromFile(const fs::path &filePath, Marketpla continue; } - // Skip the row if the seller has neither a first name nor a surname - if (row[2].value().empty() && row[3].value().empty()) { - continue; - } auto seller = std::make_unique(); seller->setSellerNo(row[0].value()); seller->setNumArticlesOffered(row[1].value()); - std::string firstName = row[2].value(); - seller->setFirstName(trim(firstName)); - std::string lastName = row[3].value(); - seller->setLastName(trim(lastName)); + + // If both, first name and last name, are empty, use N. N. + // Else, use the real values. + if (row[2].value().empty() && row[3].value().empty()) { + seller->setFirstName("N."); + seller->setLastName("N."); + } else { + std::string firstName = row[2].value(); + seller->setFirstName(trim(firstName)); + std::string lastName = row[3].value(); + seller->setLastName(trim(lastName)); + } + market->getSellers().push_back(std::move(seller)); }