X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fde%2Fdhbwloe%2Fcampusapp%2Fdatabase%2FVorlesungsplanDatabaseHelper.java;h=aef37d81ac0574dc5f098cdf40d84097cc2cbe16;hb=48e758721a39298a85c69ecc7267f3daf6993e78;hp=f4d5c8a99ba5fb717d5099c34f8536af0a80ff2d;hpb=9a28e7b4c1520f629721693a04b4978fec9692e7;p=DHBWCampusApp.git diff --git a/app/src/main/java/de/dhbwloe/campusapp/database/VorlesungsplanDatabaseHelper.java b/app/src/main/java/de/dhbwloe/campusapp/database/VorlesungsplanDatabaseHelper.java index f4d5c8a..aef37d8 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/database/VorlesungsplanDatabaseHelper.java +++ b/app/src/main/java/de/dhbwloe/campusapp/database/VorlesungsplanDatabaseHelper.java @@ -1,3 +1,18 @@ +/* VorlesungsplanDatabaseHelper.java + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package de.dhbwloe.campusapp.database; import android.content.ContentValues; @@ -282,7 +297,54 @@ public class VorlesungsplanDatabaseHelper { return eventsArr; } + public CourseEvent[] getCourseEventsByGroup(CourseGroup group) { + String[] whereArgs; + whereArgs = new String[] { + Integer.toString(group.getGroupId()) + }; + Cursor resultSet = database.rawQuery( + "SELECT " + + "Id, CourseName, UniqueId, SequenceId, CourseCalendarEvent.EventFrom, CourseCalendarEvent.EventTo, EventTitle, EventLocation, EventStatus, RecurRule, ExcludeDates, CourseGroupId, EventType " + + "FROM " + + "CourseCalendarEvent " + + "LEFT JOIN " + + "CourseCalendar ON CourseCalendar.Id = CourseCalendarEvent.EventId "+ + "WHERE " + + "CourseGroupId = ? ORDER BY CourseCalendarEvent.EventFrom ASC ", + whereArgs); + ArrayList events = new ArrayList(); + if(resultSet.moveToFirst()) { + int[] columnIndexes = { + resultSet.getColumnIndex("Id"), + resultSet.getColumnIndex("CourseName"), + resultSet.getColumnIndex("UniqueId"), + resultSet.getColumnIndex("SequenceId"), + resultSet.getColumnIndex("EventFrom"), + resultSet.getColumnIndex("EventTo"), + resultSet.getColumnIndex("EventTitle"), + resultSet.getColumnIndex("EventLocation"), + resultSet.getColumnIndex("EventStatus"), + resultSet.getColumnIndex("RecurRule"), + resultSet.getColumnIndex("ExcludeDates"), + resultSet.getColumnIndex("CourseGroupId"), + resultSet.getColumnIndex("EventType") + }; + do { + int eventType = resultSet.getInt(columnIndexes[12]); + + CourseEvent event = new CourseEvent(resultSet.getInt(columnIndexes[0]), resultSet.getString(columnIndexes[1]), resultSet.getString(columnIndexes[2]), resultSet.getInt(columnIndexes[3]), + resultSet.getLong(columnIndexes[4]), resultSet.getLong(columnIndexes[5]), resultSet.getString(columnIndexes[6]), resultSet.getString(columnIndexes[7]), + resultSet.getString(columnIndexes[8]), resultSet.getString(columnIndexes[9]), resultSet.getString(columnIndexes[10]), group, eventType); + + events.add(event); + } while (resultSet.moveToNext()); + } + resultSet.close(); + CourseEvent[] eventsArr = new CourseEvent[events.size()]; + eventsArr = events.toArray(eventsArr); + return eventsArr; + } public CourseGroup getCourseGroup(int courseGroupId) { CourseGroup coursegroup = null; @@ -420,4 +482,61 @@ public class VorlesungsplanDatabaseHelper { return groupsArr; } + public CourseEvent[] getCourseExamEvents(String coursename, long timeFrom, long timeTo) { + String[] whereArgs = new String[] { + coursename, + Long.toString(timeFrom), + Long.toString(timeTo) + }; + Cursor resultSet = database.rawQuery( + "SELECT " + + "Id, CourseName, UniqueId, SequenceId, CourseCalendarEvent.EventFrom, CourseCalendarEvent.EventTo, EventTitle, EventLocation, EventStatus, RecurRule, ExcludeDates, CourseGroupId, EventType " + + "FROM " + + "CourseCalendarEvent " + + "LEFT JOIN " + + "CourseCalendar ON CourseCalendar.Id = CourseCalendarEvent.EventId "+ + "WHERE " + + "CourseName = ? AND CourseCalendarEvent.EventTo >= ? AND CourseCalendarEvent.EventFrom <= ? AND EventType = 2", + whereArgs); + ArrayList events = new ArrayList(); + if(resultSet.moveToFirst()) { + int[] columnIndexes = { + resultSet.getColumnIndex("Id"), + resultSet.getColumnIndex("CourseName"), + resultSet.getColumnIndex("UniqueId"), + resultSet.getColumnIndex("SequenceId"), + resultSet.getColumnIndex("EventFrom"), + resultSet.getColumnIndex("EventTo"), + resultSet.getColumnIndex("EventTitle"), + resultSet.getColumnIndex("EventLocation"), + resultSet.getColumnIndex("EventStatus"), + resultSet.getColumnIndex("RecurRule"), + resultSet.getColumnIndex("ExcludeDates"), + resultSet.getColumnIndex("CourseGroupId"), + resultSet.getColumnIndex("EventType") + }; + do { + int groupId = resultSet.getInt(columnIndexes[11]); + CourseGroup group; + if(groupId > 0) + group = CourseGroup.GetCourseGroupById(AppContext.getDatabaseManager(), groupId); + else + group = null; + + int eventType = resultSet.getInt(columnIndexes[12]); + + CourseEvent event = new CourseEvent(resultSet.getInt(columnIndexes[0]), resultSet.getString(columnIndexes[1]), resultSet.getString(columnIndexes[2]), resultSet.getInt(columnIndexes[3]), + resultSet.getLong(columnIndexes[4]), resultSet.getLong(columnIndexes[5]), resultSet.getString(columnIndexes[6]), resultSet.getString(columnIndexes[7]), + resultSet.getString(columnIndexes[8]), resultSet.getString(columnIndexes[9]), resultSet.getString(columnIndexes[10]), group, eventType); + + events.add(event); + } while (resultSet.moveToNext()); + } + resultSet.close(); + + CourseEvent[] eventsArr = new CourseEvent[events.size()]; + eventsArr = events.toArray(eventsArr); + return eventsArr; + } + }