|
|
|
package ru.egspt;
|
|
|
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
public class Data extends UserListModel {
|
|
|
|
private ArrayList<Quiz> quizes = new ArrayList<>();
|
|
|
|
private ArrayList<Result> results = new ArrayList<>();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param quizes the quizes to set
|
|
|
|
*/
|
|
|
|
public void setQuizes(ArrayList<Quiz> quizes) {
|
|
|
|
this.quizes = quizes;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @return the quizes
|
|
|
|
*/
|
|
|
|
public ArrayList<Quiz> getQuizes() {
|
|
|
|
return quizes;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @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));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
j++;
|
|
|
|
}
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
return q;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @param results the results to set
|
|
|
|
*/
|
|
|
|
public void setResults(ArrayList<Result> results) {
|
|
|
|
this.results = results;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @return the results
|
|
|
|
*/
|
|
|
|
public ArrayList<Result> getResults() {
|
|
|
|
return results;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @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;
|
|
|
|
}
|
|
|
|
}
|