more on sellers
This commit is contained in:
parent
207edb27ba
commit
a2ad2eb57d
8 changed files with 74 additions and 38 deletions
|
@ -145,7 +145,7 @@ void Database::beginTransaction() { exec("BEGIN TRANSACTION"); }
|
|||
|
||||
void Database::endTransaction() { exec("END TRANSACTION"); }
|
||||
|
||||
unsigned int Database::storeSellers(std::vector<std::shared_ptr<Seller>>& sellers)
|
||||
unsigned int Database::storeSellers(std::vector<std::unique_ptr<Seller>>& sellers)
|
||||
{
|
||||
int retCode{};
|
||||
int count{};
|
||||
|
@ -165,10 +165,9 @@ unsigned int Database::storeSellers(std::vector<std::shared_ptr<Seller>>& seller
|
|||
if (retCode != SQLITE_OK)
|
||||
throw std::runtime_error(sqlite3_errmsg(db_));
|
||||
|
||||
int test = sqlite3_bind_text(stmt, sqlite3_bind_parameter_index(stmt, ":uuid"),
|
||||
boost::uuids::to_string(seller->getUuid()).c_str(), -1,
|
||||
SQLITE_TRANSIENT);
|
||||
std::cout << "!!! TEST: " << test << "\n";
|
||||
sqlite3_bind_text(stmt, sqlite3_bind_parameter_index(stmt, ":uuid"),
|
||||
boost::uuids::to_string(seller->getUuid()).c_str(), -1,
|
||||
SQLITE_TRANSIENT);
|
||||
sqlite3_bind_int(stmt, sqlite3_bind_parameter_index(stmt, ":seller_no"),
|
||||
seller->getSellerNo());
|
||||
sqlite3_bind_text(stmt, sqlite3_bind_parameter_index(stmt, ":first_name"),
|
||||
|
@ -254,12 +253,14 @@ unsigned int Database::storeSellers(std::vector<std::shared_ptr<Seller>>& seller
|
|||
|
||||
endTransaction();
|
||||
|
||||
// Everything went fine, so we can now update our objects
|
||||
sellers.erase(
|
||||
std::remove_if(begin(sellers), end(sellers), [](const std::shared_ptr<Seller>& seller) {
|
||||
return seller->getState() == Seller::State::DELETE;
|
||||
}));
|
||||
for (const auto& seller : sellers) {
|
||||
// Everything went fine, so we can now update our objects
|
||||
sellers.erase(std::remove_if(sellers.begin(), sellers.end(),
|
||||
[](const std::unique_ptr<Seller>& seller) {
|
||||
return (seller->getState() == Seller::State::DELETE);
|
||||
}),
|
||||
sellers.end());
|
||||
|
||||
for (auto& seller : sellers) {
|
||||
seller->cleanupArticles();
|
||||
seller->setState(Seller::State::OK);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ class Database
|
|||
Database& operator=(const Database&) = delete;
|
||||
void exec(const std::string& sql);
|
||||
void init();
|
||||
unsigned int storeSellers(std::vector<std::shared_ptr<Seller>>& sellers);
|
||||
unsigned int storeSellers(std::vector<std::unique_ptr<Seller>>& sellers);
|
||||
|
||||
private:
|
||||
sqlite3* db_;
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
Marketplace::Marketplace()
|
||||
{
|
||||
auto seller = std::make_shared<Seller>("Max", "Mustermann");
|
||||
sellers_.push_back(seller);
|
||||
auto seller = std::make_unique<Seller>("Max", "Mustermann");
|
||||
sellers_.push_back(std::move(seller));
|
||||
}
|
||||
|
||||
void Marketplace::storeToDb()
|
||||
|
@ -15,4 +15,4 @@ void Marketplace::storeToDb()
|
|||
db.storeSellers(sellers_);
|
||||
}
|
||||
|
||||
std::vector<std::shared_ptr<Seller>>& Marketplace::getSellers() { return sellers_; }
|
||||
std::vector<std::unique_ptr<Seller>>& Marketplace::getSellers() { return sellers_; }
|
|
@ -13,11 +13,11 @@ class Marketplace
|
|||
Marketplace();
|
||||
void storeToDb();
|
||||
void loadFromDb();
|
||||
std::vector<std::shared_ptr<Seller>>& getSellers();
|
||||
std::vector<std::unique_ptr<Seller>>& getSellers();
|
||||
|
||||
private:
|
||||
std::vector<std::shared_ptr<Seller>> sellers_;
|
||||
std::vector<std::shared_ptr<Sale>> sales_;
|
||||
std::vector<std::unique_ptr<Seller>> sellers_;
|
||||
std::vector<std::unique_ptr<Sale>> sales_;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -14,11 +14,11 @@ Seller::Seller(const std::string& firstName, const std::string& lastName, int se
|
|||
|
||||
void Seller::setSellerNo(int seller_no) { sellerNo_ = seller_no; }
|
||||
|
||||
inline void Seller::setFirstName(const std::string& firstName) { firstName_ = firstName; }
|
||||
void Seller::setFirstName(const std::string& firstName) { firstName_ = firstName; }
|
||||
|
||||
inline void Seller::setLastName(const std::string& lastName) { lastName_ = lastName; }
|
||||
void Seller::setLastName(const std::string& lastName) { lastName_ = lastName; }
|
||||
|
||||
inline void Seller::setNumArticlesOffered(int number) { numArticlesOffered_ = number; }
|
||||
void Seller::setNumArticlesOffered(int number) { numArticlesOffered_ = number; }
|
||||
|
||||
void Seller::addArticle(std::shared_ptr<Article> article)
|
||||
{
|
||||
|
@ -51,10 +51,11 @@ int Seller::numArticlesOffered() const { return numArticlesOffered_; }
|
|||
|
||||
void Seller::cleanupArticles()
|
||||
{
|
||||
articles_.erase(std::remove_if(begin(articles_), end(articles_),
|
||||
articles_.erase(std::remove_if(articles_.begin(), articles_.end(),
|
||||
[](const std::shared_ptr<Article>& article) {
|
||||
return article->getState() == Article::State::DELETE;
|
||||
}));
|
||||
}),
|
||||
articles_.end());
|
||||
|
||||
for (auto& article : articles_) {
|
||||
article->setState(Article::State::OK);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue