package ru.egspt; import java.sql.ResultSet; import java.util.ArrayList; public class Data extends UserListModel { private ArrayList quizes = new ArrayList<>(); private ArrayList results = new ArrayList<>(); /** * @param quizes the quizes to set */ public void setQuizes(ArrayList quizes) { this.quizes = quizes; } /** * @return the quizes */ public ArrayList getQuizes() { return quizes; } /** * @return полный перечень опросов из базы */ public ArrayList getQuizesFromBase(Base base) { ArrayList 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 getQuizesByResults(ArrayList quizes, ArrayList results) { ArrayList 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 results) { this.results = results; } /** * @return the results */ public ArrayList getResults() { return results; } /** * @return полный перечень результатов из базы */ public ArrayList getResultsFromBase(Base base) { ArrayList 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 getResultsByUsers(ArrayList results, ArrayList users){ ArrayList 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; } }