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.

130 lines
4.6 KiB

2 years ago
package ru.egspt;
2 years ago
2 years ago
import java.sql.ResultSet;
2 years ago
import java.util.ArrayList;
public class Data extends UserListModel {
2 years ago
private ArrayList<Quiz> quizes = new ArrayList<>();
private ArrayList<Result> results = new ArrayList<>();
2 years ago
/**
* @param quizes the quizes to set
*/
public void setQuizes(ArrayList<Quiz> quizes) {
this.quizes = quizes;
}
/**
* @return the quizes
*/
public ArrayList<Quiz> getQuizes() {
return quizes;
}
2 years ago
/**
* @return полный перечень опросов из базы
*/
public ArrayList<Quiz> getQuizesFromBase(Base base) {
ArrayList<Quiz> q = new ArrayList<>();
String querry = "SELECT id, name, timelimit FROM mdl_quiz";
ResultSet rs = base.querry(querry);
try {
while (rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
Quiz qu = new Quiz(id, name);
q.add(qu);
}
}
catch (Exception ex){
System.err.println ("Подключение к серверу баз данных не установлено ... ");
ex.printStackTrace();
System.out.println (ex);
}
return q;
}
public ArrayList<Quiz> getQuizesByResults(ArrayList<Quiz> quizes, ArrayList<Result> results) {
ArrayList<Quiz> q = new ArrayList<>();
//перебор опросов
int i = 0;
while (i < quizes.size()){
int j = 0;
while (j < results.size()){
if (quizes.get(i).getId() == results.get(j).getQuizid()){
boolean b = true;
//перебираем уже записанные опросы
int k = 0;
while (k < q.size()){
//сравниваем записанные опросы с текущим совпавшим id опроса
if (q.get(k).getId() == results.get(j).getQuizid()){
b = false;
}
k++;
}
//если не найдено совпадение, добавляем новый опрос к списку
if(b){
q.add(quizes.get(i));
}
}
2 years ago
j++;
}
2 years ago
i++;
}
return q;
}
2 years ago
/**
* @param results the results to set
*/
public void setResults(ArrayList<Result> results) {
this.results = results;
}
/**
* @return the results
*/
public ArrayList<Result> getResults() {
return results;
}
2 years ago
/**
* @return полный перечень результатов из базы
*/
public ArrayList<Result> getResultsFromBase(Base base) {
ArrayList<Result> r = new ArrayList<>();
String querry = "SELECT id, quiz, userid, grade, timemodified FROM mdl_quiz_grades";
ResultSet rs = base.querry(querry);
try {
while (rs.next()){
int id = rs.getInt("id");
int quizid = rs.getInt("quiz");
int userid = rs.getInt("userid");
double grade = rs.getDouble("grade");
Long time = rs.getLong("timemodified");
Result result = new Result(id, quizid, userid, grade, time);
r.add(result);
}
}
catch (Exception ex){
System.err.println ("Подключение к серверу баз данных не установлено ... ");
ex.printStackTrace();
System.out.println (ex);
}
return r;
}
public ArrayList<Result> getResultsByUsers(ArrayList<Result> results, ArrayList<User> users){
ArrayList<Result> r = new ArrayList<>();
//перебор результатов
int i = 0;
while (i < results.size()){
//перебор пользователей
int j = 0;
while (j < users.size()){
//проверка соответствия по id пользователя
if (results.get(i).getUserid() == users.get(j).getId()){
r.add(results.get(i));//совпадения пишем в список
}
j++;
}
i++;
}
return r;
}
2 years ago
}