Computer ComputerRepository::getComputer(const unique_ptr<QSqlQuery> &query) { Computer comp; comp.setID(query->value("id").toInt()); comp.setName(query->value("name").toString().toStdString()); comp.setType(query->value("type").toString().toStdString()); comp.setBuildYear(query->value("build_year").toInt()); comp.setBuilt(query->value("built").toBool()); return comp; }
vector<Computer> ComputerRepository::search(string input, string word) { db.open(); vector<Computer> temp; QString qinput = QString::fromStdString(input); QString likeInput = "%" + qinput + "%"; QSqlQuery query; if(word == "Name") { query.prepare("SELECT * FROM Computers c WHERE c.Name LIKE :contains ORDER BY Name;"); } else if(word == "Build Year") { query.prepare("SELECT * FROM Computers c WHERE c.BuildYear LIKE :contains ORDER BY Name"); } else if(word == "Type") { query.prepare("SELECT * FROM Computers c WHERE c.Type LIKE :contains ORDER BY Name"); } else { query.prepare("SELECT * FROM Computers c WHERE c.Built LIKE :contains ORDER BY Name"); } query.bindValue(":contains",likeInput); query.exec(); while(query.next()) { Computer c; c.setName(query.value("Name").toString().toStdString()); c.setBuildYear(query.value("BuildYear").toString().toStdString()); c.setType(query.value("Type").toString().toStdString()); c.setBuilt(query.value("Built").toInt()); c.setID(query.value("ID").toInt()); temp.push_back(c); } db.close(); return temp; }
vector<Computer> ComputerRepository::getComputersFromScientist(Person scientist) { db.open(); vector<Computer> temp; QSqlQuery query; query.prepare("SELECT * FROM Computers c JOIN Linker l ON l.c_ID = c.ID AND l.p_ID = ?"); query.addBindValue(scientist.getID()); query.exec(); while(query.next()) { Computer c; c.setName(query.value("Name").toString().toStdString()); c.setBuildYear(query.value("BuildYear").toString().toStdString()); c.setType(query.value("Type").toString().toStdString()); c.setBuilt(query.value("Built").toInt()); c.setID(query.value("ID").toInt()); temp.push_back(c); } db.close(); return temp; }
vector<Computer> ComputerRepository::getSortedComputers(string sortOrder) { db.open(); QSqlQuery query; if(sortOrder == "Name") { query.prepare("SELECT * FROM Computers ORDER BY Name"); } else if(sortOrder == "Build Year") { query.prepare("SELECT * FROM Computers ORDER BY BuildYear"); } else if(sortOrder == "Type") { query.prepare("SELECT * FROM Computers ORDER BY Type"); } else if(sortOrder == "Built") { query.prepare("SELECT * FROM Computers ORDER BY Built"); } else { query.prepare("SELECT * FROM Computers"); } query.exec(); vector<Computer> temp; while(query.next()) { Computer c; c.setName(query.value("Name").toString().toStdString()); c.setBuildYear(query.value("BuildYear").toString().toStdString()); c.setType(query.value("Type").toString().toStdString()); c.setBuilt(query.value("Built").toInt()); c.setID(query.value("ID").toInt()); temp.push_back(c); } db.close(); return temp; }