void Search( vector<Computer> & list, Computer p ) { // Search for members in list based on template person p vector<Computer> SearchList; // Create search result vector for( unsigned int x = 0; x < list.size(); x++) { // Search each entry of list bool add = true; // We say the entry should be added by default then exclude it based on the template person if( p.getName() != "" ) if( !list[x].getName().contains( p.getName(), Qt::CaseInsensitive ) ) add = false; if( p.getType() != "" ) if( !list[x].getType().contains( p.getType() , Qt::CaseInsensitive ) ) add = false; if( p.getWasBuilt() != 2 ) if( !(list[x].getWasBuilt() == p.getWasBuilt() ) ) add = false; if( p.getYear() != "" ) if( !(list[x].getYear() == p.getYear() ) ) add = false; if(add) SearchList.push_back( list[x] ); } displayComputer( SearchList ); // Display search results }
void AddLink::displayComp(vector<Computer>& computer) { ui->table_linking->setSortingEnabled(false); ui->table_linking->clearContents(); ui->table_linking->setColumnCount(5); ui->table_linking->setRowCount(computer.size()); ui->table_linking->setHorizontalHeaderItem(0,new QTableWidgetItem(QString("id"))); ui->table_linking->setHorizontalHeaderItem(1,new QTableWidgetItem(QString("Name"))); ui->table_linking->setHorizontalHeaderItem(2,new QTableWidgetItem(QString("Year"))); ui->table_linking->setHorizontalHeaderItem(3,new QTableWidgetItem(QString("Type"))); ui->table_linking->setHorizontalHeaderItem(4,new QTableWidgetItem(QString("Built"))); for(size_t i = 0; i < computer.size(); i++) { Computer temp = computer[i]; QTableWidgetItem* id = new QTableWidgetItem; id->setData(Qt::DisplayRole,temp.getID()); ui->table_linking->setItem(i,0, id); ui->table_linking->setItem(i,1, new QTableWidgetItem(QString::fromStdString(temp.getName()))); ui->table_linking->setItem(i,2, new QTableWidgetItem(QString::number(temp.getYear()))); ui->table_linking->setItem(i,3, new QTableWidgetItem(QString::fromStdString(temp.getType()))); ui->table_linking->setItem(i,4, new QTableWidgetItem(QString::number(temp.getBuilt()))); } ui->table_linking->setSortingEnabled(true); }
void ComputerRepository::addToDatabase(Computer computer) { QSqlQuery query(datab); query.prepare("INSERT INTO Computers(Name, Type, WasBuilt, YearBuilt) VALUES (:Name, :Type, :WasBuilt, :YearBuilt)"); query.bindValue(":Name", QString::fromStdString(computer.getName())); query.bindValue(":Type", QString::fromStdString(computer.getType())); query.bindValue(":WasBuilt", QString::fromStdString(computer.getWasBuilt())); query.bindValue(":YearBuilt", QString::fromStdString(computer.getYear())); query.exec(); }
void Database::addComputer(Computer computer) { QSqlQuery query(connectDatabase()); query.prepare("INSERT INTO Computers (ComputersName, YearBuilt, Type, WasItBuilt) VALUES (:name, :year, :type, :built)"); query.bindValue(":name", QString::fromStdString(computer.getName())); query.bindValue(":year", QString::number(computer.getYear())); query.bindValue(":type", QString::fromStdString(computer.getType())); query.bindValue(":built", QString::number(computer.getwasItBuilt())); query.exec(); }
int SQLITEHandler::addEntry( Computer c ) { // Add Computer to database if( !status ) // If not connected, fail return 1; q.prepare( "INSERT INTO computers (name, creation, type, constructed) VALUES (:name, :creation, :type, :constructed)" ); q.bindValue( ":name", c.getName() ); q.bindValue( ":creation", c.getYear() ); q.bindValue( ":type", c.getType() ); q.bindValue( ":constructed", c.getWasBuilt() ); if( !q.exec() ) // Attempt to execute query return 1; return 0; // Return Success }
int SQLITEHandler::modifyEntry( Computer c ) { // Modify computer in database if( !status ) // If not connected, fail return 1; q.prepare( "UPDATE computers SET name = (:name), creation = (:creation), type = (:type), constructed = (:constructed) WHERE id = (:id)" ); q.bindValue( ":id", c.getId() ); q.bindValue( ":name", c.getName() ); q.bindValue( ":creation", c.getYear() ); q.bindValue( ":type", c.getType() ); q.bindValue( ":constructed", c.getWasBuilt() ); if( !q.exec() ) // Attempt to execute query return 2; return 0; // Return Success }
void MainWindow::displayComputer(vector<Computer> computers) { ui->table_computers->clearContents(); ui->table_computers->setRowCount(computers.size()); for (unsigned int i = 0; i < computers.size(); i++) { Computer currentComputer = computers.at(i); QString Name = QString::fromStdString(currentComputer.getName()); QString Type = QString::fromStdString(currentComputer.getType()); QString WasBuilt = QString::fromStdString(currentComputer.getWasBuilt()); QString Year = QString::fromStdString(currentComputer.getYear()); ui->table_computers->setItem(i, 0, new QTableWidgetItem(Name)); ui->table_computers->setItem(i, 1, new QTableWidgetItem(Type)); ui->table_computers->setItem(i, 2, new QTableWidgetItem(WasBuilt)); ui->table_computers->setItem(i, 3, new QTableWidgetItem(Year)); } currentlyDisplayedComputers = computers; }
bool DbManager::editComputer(Computer comp) { QString was_built = ""; switch (comp.getBuilt()) { case 0: was_built = "0"; break; case 1: was_built = "1"; break; } return execQuery("UPDATE Computers " "SET name = '" + comp.getName() + "', " "year = " + comp.getYear() + ", " "type = '" + comp.getType() + "', " "built = " + was_built + " " "WHERE cID = " + comp.getId()); }
bool DbManager::addComputer(Computer comp) { QString was_built = ""; switch (comp.getBuilt()) { case 0: was_built = "0"; break; case 1: was_built = "1"; break; } return execQuery("INSERT INTO Computers (name, year, type, built) " "VALUES ( '" + comp.getName() + "'," + comp.getYear() + ",'" + comp.getType() + "', " + was_built + " )"); }
Computer SearchComputerMenu() { Computer temp; char key = 0; QTextStream in(stdin); temp.setName(""); temp.setType(""); temp.setWasBuilt(2); while( key != '5' ) { // while looping while inserting search parameters cout << "Please specify search parameters" << endl; cout << "\t1. Search by name("; if( temp.getName() == "" ) // If wildcard cout << "any)" << endl; else // if user specified cout << temp.getName().toUtf8().constData() << ")" << endl; // Write current name parameters cout << "\t2. Search by type("; if( temp.getType() == "" ) // If wildcard cout << "any)" << endl; else cout << temp.getType().toUtf8().constData() << ")" << endl; // Write current type parameters cout << "\t3. Search by built("; if( temp.getWasBuilt() == 2 ) // If wildcard cout << "any)" << endl; else if( temp.getWasBuilt() == 0 ) // if user specified cout << "not built)" << endl; // Write current birth parameters else if( temp.getWasBuilt() == 1 ) cout << "built)" << endl; // Write current birth parameters cout << "\t4. Search by year("; if( temp.getYear() == "" ) // If wildcard cout << "any)" << endl; else // if user specified cout << temp.getYear().toUtf8().constData() << ")" << endl; // Write current death parameters cout << "\t5. Search" << endl; cout << "Your choice: "; cin >> key; // Get user input for next action, 1: name parameter, 2: gender parameter, 3: birth parameter, 4: death parameter and 5: Search cin.ignore(); if( key == '1' ) { // Set user name search parameter cout << "Insert name to search for: "; temp.setName( in.readLine() ); } else if( key == '2' ) { // Set user type search parameter cout << "Insert type to search for: "; temp.setType( in.readLine() ); } else if( key == '3' ) { // Set user birth search parameter temp.setWasBuilt( -1 ); while( (temp.getWasBuilt() < 0) || (temp.getWasBuilt() > 2) ) { QString built; cout << "Insert built or not to search for(any/built/not built): "; built = in.readLine(); if( built == "any" || built == "Any" ) temp.setWasBuilt( 2 ); else if( built == "not built" || built == "Not built" || built == "not Built" || built == "Not Built" ) temp.setWasBuilt( 0 ); else if( built == "built" || built == "Built" ) temp.setWasBuilt( 1 ); else cout << "Invalid input!" << endl; } } else if( key == '4' ) { // Set user death search parameter QString deathstring = ""; temp.setYear( "" ); // Set empty date (Also used as wildcard) while( deathstring != "0" && temp.getYear() == "" ) { cout << "Insert death date(dd.mm.yyyy, 0 for any): "; deathstring = in.readLine(); if( deathstring != "0" ) temp.setYear( deathstring ); } } } cout << endl; return temp; // Returns template for person to search for }