Example #1
0
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
}
Example #2
0
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();
}
Example #3
0
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
}
Example #4
0
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
}
Example #5
0
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;
}
Example #6
0
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
}