You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

92 lines
2.5 KiB

#include "WarenStorage.h"
WarenStorage::WarenStorage() { }
void WarenStorage::addWarenListToSum(std::vector<Ware>* sumList, std::vector<Ware> itemList) const {
//reference ohne const möglich oder ist hier ein pointer notwendig??
for(Ware ware : itemList) {
sumList->push_back((Ware) ware); //static_cast<> oder ganz weg
}
}
std::vector<Ware> WarenStorage::getAllWaren() const {
std::vector<Ware> w;
addWarenListToSum(&w, warenList);
addWarenListToSum(&w, coolingWarenList);
addWarenListToSum(&w, largeWarenList);
return w;
}
std::vector<Ware> WarenStorage::getWarenList() {
return warenList;
}
void WarenStorage::setWarenList(const std::vector<Ware> waren) {
this->warenList = waren;
}
std::vector<WarenStorage::CoolingWare> WarenStorage::getCoolingWarenList() {
return coolingWarenList;
}
void WarenStorage::setCoolingWarenList(const std::vector<CoolingWare> coolingWaren) {
this->coolingWarenList = coolingWaren;
}
std::vector<Ware> WarenStorage::getLargeWarenList() {
return largeWarenList;
}
void WarenStorage::setLargeWarenList(const std::vector<LargeWare> largeWaren) {
this->largeWarenList = largeWaren;
}
void WarenStorage::addWareAndGenerateId(Ware ware) {
ware.generateId();
switch(ware.getType()) {
case Ware::WareType::DefaultWare:
warenList.push_back(ware);
break;
case Ware::WareType::CoolingWare:
coolingWarenList.push_back(ware);
break;
case Ware::WareType::LargeWare:
largeWarenList.push_back(ware);
break;
}
}
void WarenStorage::removeWare(const std::string name) {
std::vector<Ware> allWaren = getAllWaren();
for(size_t i = 0; i < allWaren.size(); i++) {
if(allWaren[i].getName() == name) {
switch(allWaren[i].getType()) {
case Ware::WareType::DefaultWare:
warenList.erase(
warenList.begin() + i
);
break;
case Ware::WareType::CoolingWare:
coolingWarenList.erase(
coolingWarenList.begin() + i
);
break;
case Ware::WareType::LargeWare:
largeWarenList.erase(
largeWarenList.begin() + i
);
break;
}
break; //remove only one item
}
}
}