package com.brady.jlulife.Models.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.brady.jlulife.Entities.CourseSpec;
import com.brady.jlulife.Entities.Score.Course;
import com.brady.jlulife.Utils.ConstValue;
import java.util.ArrayList;
import java.util.List;
/**
* Created by brady on 15-11-13.
*/
public class DBManager {
private DBHelper mhelper;
private SQLiteDatabase db;
public DBManager(Context context) {
mhelper = new DBHelper(context, "jlulife.db", null, 2);
db = mhelper.getWritableDatabase();
}
public void addAllCourses(List<CourseSpec> courseSpecList) {
db.beginTransaction();
try {
for (CourseSpec c : courseSpecList) {
db.execSQL("INSERT INTO course VALUES(null,?,?,?,?,?,?,?,?,?,?,?)",
new Object[]{c.getCourseId(), c.getCourseName(), c.getClassRoom(), c.getTeacherName(), c.getWeek(), c.getStartTime(), c.getEndTime(), c.getBeginWeek(), c.getEndWeek(), c.getIsSingleWeek(), c.getIsDoubleWeek()});
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public List<CourseSpec> queryAllCourses() {
List<CourseSpec> courseSpecs = new ArrayList<CourseSpec>();
CourseSpec courseSpec;
Cursor c = db.query("course", null, null, null, null, null, null);
while (c.moveToNext()) {
courseSpec = new CourseSpec();
courseSpec.setId(c.getInt(c.getColumnIndex("id")));
courseSpec.setCourseId(c.getInt(c.getColumnIndex("courseid")));
courseSpec.setBeginWeek(c.getInt(c.getColumnIndex("beginWeek")));
courseSpec.setClassRoom(c.getString(c.getColumnIndex("classroom")));
courseSpec.setCourseName(c.getString(c.getColumnIndex("coursename")));
courseSpec.setEndTime(c.getInt(c.getColumnIndex("endTime")));
courseSpec.setEndWeek(c.getInt(c.getColumnIndex("endWeek")));
courseSpec.setIsDoubleWeek(c.getInt(c.getColumnIndex("isDoubleWeek")));
courseSpec.setIsSingleWeek(c.getInt(c.getColumnIndex("isSingleWeek")));
courseSpec.setStartTime(c.getInt(c.getColumnIndex("startTime")));
courseSpec.setTeacherName(c.getString(c.getColumnIndex("teachername")));
courseSpec.setWeek(c.getInt(c.getColumnIndex("week")));
courseSpecs.add(courseSpec);
}
c.close();
return courseSpecs;
}
public void deleteAllItems() {
db.execSQL("DELETE FROM course");
}
public CourseSpec queryCourse(int courseId) {
CourseSpec spec = new CourseSpec();
Cursor c = db.query("course", null, "id = " + courseId, null, null, null, null);
if(c.moveToNext()) {
spec.setId(c.getInt(c.getColumnIndex("id")));
spec.setCourseId(c.getInt(c.getColumnIndex("courseid")));
spec.setBeginWeek(c.getInt(c.getColumnIndex("beginWeek")));
spec.setClassRoom(c.getString(c.getColumnIndex("classroom")));
spec.setCourseName(c.getString(c.getColumnIndex("coursename")));
spec.setEndTime(c.getInt(c.getColumnIndex("endTime")));
spec.setEndWeek(c.getInt(c.getColumnIndex("endWeek")));
spec.setIsDoubleWeek(c.getInt(c.getColumnIndex("isDoubleWeek")));
spec.setIsSingleWeek(c.getInt(c.getColumnIndex("isSingleWeek")));
spec.setStartTime(c.getInt(c.getColumnIndex("startTime")));
spec.setTeacherName(c.getString(c.getColumnIndex("teachername")));
spec.setWeek(c.getInt(c.getColumnIndex("week")));
}
return spec;
}
public void addCourse(CourseSpec c) {
db.beginTransaction();
try {
if(c.getCourseId()==0){
db.execSQL("INSERT INTO course VALUES(null,null,?,?,?,?,?,?,?,?,?,?)",
new Object[]{c.getCourseName(), c.getClassRoom(), c.getTeacherName(), c.getWeek(), c.getStartTime(), c.getEndTime(), c.getBeginWeek(), c.getEndWeek(), c.getIsSingleWeek(), c.getIsDoubleWeek()});
}else {
db.execSQL("INSERT INTO course VALUES(null,?,?,?,?,?,?,?,?,?,?,?)",
new Object[]{c.getCourseId(),c.getCourseName(), c.getClassRoom(), c.getTeacherName(), c.getWeek(), c.getStartTime(), c.getEndTime(), c.getBeginWeek(), c.getEndWeek(), c.getIsSingleWeek(), c.getIsDoubleWeek()});
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public void deleteCourse(int courseId){
db.beginTransaction();
try {
db.delete("course","id = "+courseId,null);
db.setTransactionSuccessful();
}finally {
db.endTransaction();
}
}
public void editCourse(int courseId,CourseSpec c){
db.beginTransaction();
try {
ContentValues values = new ContentValues();
values.put("isSingleWeek",c.getIsSingleWeek());
values.put("isDoubleWeek",c.getIsDoubleWeek());
values.put("coursename",c.getCourseName());
values.put("teachername",c.getTeacherName());
values.put("classroom",c.getClassRoom());
values.put("beginWeek",c.getBeginWeek());
values.put("endWeek",c.getEndWeek());
values.put("startTime", c.getStartTime());
values.put("endTime", c.getEndTime());
values.put("week", c.getWeek());
int i =db.update("course", values, "id=?", new String[]{String.valueOf(courseId)});
db.setTransactionSuccessful();
}finally {
db.endTransaction();
}
}
}