Added defaults

This commit is contained in:
Mary Tran 2018-12-03 17:59:57 -05:00
parent 7cba1b21ad
commit d8a5d33924

View file

@ -31,6 +31,9 @@ public class DBHelper extends SQLiteOpenHelper {
//name of db in app data //name of db in app data
private static final String DB_NAME = "UsersDB.db"; private static final String DB_NAME = "UsersDB.db";
//has the data been added?
private static boolean setUp = false;
//SQLiteDatabase for reading //SQLiteDatabase for reading
private static SQLiteDatabase readDB; private static SQLiteDatabase readDB;
@ -41,7 +44,7 @@ public class DBHelper extends SQLiteOpenHelper {
private static final String TABLE_LOGIN = "userInfo"; private static final String TABLE_LOGIN = "userInfo";
//columns of TABLE_LOGIN //columns of TABLE_LOGIN
private static final String COLUMN_USERNAME = "username"; private static final String COLUMN_USERNAME = "username";
private static final String COLUMN_PASSWORD = "password"; private static final String COLUMN_PASSWORD = "password"; //actually stores password hash
private static final String COLUMN_FIRSTNAME = "firstName"; private static final String COLUMN_FIRSTNAME = "firstName";
private static final String COLUMN_LASTNAME = "lastName"; private static final String COLUMN_LASTNAME = "lastName";
private static final String COLUMN_USERTYPE = "userType"; private static final String COLUMN_USERTYPE = "userType";
@ -113,12 +116,11 @@ public class DBHelper extends SQLiteOpenHelper {
//since these methods take a while we will call them once and store the returned dbs //since these methods take a while we will call them once and store the returned dbs
readDB = this.getReadableDatabase(); readDB = this.getReadableDatabase();
writeDB = this.getWritableDatabase(); writeDB = this.getWritableDatabase();
//pre-add the admin user
addUser(new Admin()); if (!setUp){
addUser(new ServiceProvider("testing", "testing", "TestFirst", "TestLast", setUp();
"1234 Test Street, Testinaro, Timor-Teste", "6136136163", setUp = true;
"Test Company", false, }
"Tested 10 years"));
} }
@Override @Override
@ -1202,8 +1204,7 @@ public class DBHelper extends SQLiteOpenHelper {
contentValues.put(COLUMN_RATING, rating); contentValues.put(COLUMN_RATING, rating);
contentValues.put(COLUMN_COMMENT, comment); contentValues.put(COLUMN_COMMENT, comment);
Cursor cursor = writeDB.query(TABLE_BOOKINGS, new String[]{COLUMN_RATING},
boolean updated = writeDB.update(TABLE_BOOKINGS, contentValues,
COLUMN_BOOKINGSERVICEPROVIDER + " = ? AND " COLUMN_BOOKINGSERVICEPROVIDER + " = ? AND "
+ COLUMN_BOOKINGHOMEOWNER + " = ? AND " + COLUMN_BOOKINGHOMEOWNER + " = ? AND "
+ COLUMN_BOOKINGYEAR + " = ? AND " + COLUMN_BOOKINGYEAR + " = ? AND "
@ -1215,22 +1216,46 @@ public class DBHelper extends SQLiteOpenHelper {
String.valueOf(booking.getYear()), String.valueOf(booking.getYear()),
String.valueOf(booking.getMonth()), String.valueOf(booking.getMonth()),
String.valueOf(booking.getDay()), String.valueOf(booking.getDay()),
String.valueOf(booking.getStarth()*60 + booking.getStartmin())}) > 0; String.valueOf(booking.getStarth()*60 + booking.getStartmin())},
null, null, null, null);
int previousrating = 0;
if (cursor.moveToFirst()){
previousrating = cursor.getInt(0);
}
boolean updated = writeDB.update(TABLE_BOOKINGS, contentValues,
COLUMN_BOOKINGSERVICEPROVIDER + " = ? AND "
+ COLUMN_BOOKINGHOMEOWNER + " = ? AND "
+ COLUMN_BOOKINGYEAR + " = ? AND "
+ COLUMN_BOOKINGMONTH + " = ? AND "
+ COLUMN_BOOKINGDATE + " = ? AND "
+ COLUMN_BOOKINGSTART + " = ? AND "
+ COLUMN_BOOKINGSTART + " = ?",
new String[] {booking.getServiceprovider().getUsername(),
booking.getHomeowner().getUsername(),
String.valueOf(booking.getYear()),
String.valueOf(booking.getMonth()),
String.valueOf(booking.getDay()),
String.valueOf(booking.getStarth()*60 + booking.getStartmin()),
Status.CANCELLED.toString()}) > 0;
if (updated) { if (updated) {
Cursor cursor = writeDB.query(TABLE_SERVICEPROVIDERS, new String[]{COLUMN_AVERAGERATING, COLUMN_RATERS}, cursor = writeDB.query(TABLE_SERVICEPROVIDERS, new String[]{COLUMN_AVERAGERATING, COLUMN_RATERS},
COLUMN_SERVICEPROVIDERNAME + " = ? AND " COLUMN_SERVICEPROVIDERNAME + " = ? AND "
+ COLUMN_SERVICEPROVIDERSERVICE + " = ?", + COLUMN_SERVICEPROVIDERSERVICE + " = ?",
new String[] {booking.getServiceprovider().getUsername(), booking.getService().getName()}, new String[] {booking.getServiceprovider().getUsername(), booking.getService().getName()},
null, null, null, null); null, null, null, null);
cursor.moveToFirst(); cursor.moveToFirst();
int currentRaters = cursor.getInt(1) + 1; int currentRaters = cursor.getInt(1);
double currentAverageRatings = cursor.getDouble(0) + rating; double currentAverageRatings = cursor.getDouble(0)*currentRaters
+ rating - previousrating;
currentRaters += previousrating == 0? 1 : 0;
cursor.close(); cursor.close();
contentValues = new ContentValues(); contentValues = new ContentValues();
contentValues.put(COLUMN_AVERAGERATING, currentAverageRatings/(double)currentRaters); contentValues.put(COLUMN_AVERAGERATING, currentAverageRatings);
contentValues.put(COLUMN_RATERS, currentRaters); contentValues.put(COLUMN_RATERS, currentRaters);
writeDB.update(TABLE_SERVICEPROVIDERS, contentValues, writeDB.update(TABLE_SERVICEPROVIDERS, contentValues,
@ -1534,6 +1559,19 @@ public class DBHelper extends SQLiteOpenHelper {
writeDB.execSQL("DELETE FROM " + TABLE_BOOKINGS); writeDB.execSQL("DELETE FROM " + TABLE_BOOKINGS);
} }
/**
* I got really tired of trying to figure out how to rate and book at the same time.
* So Imma force it V2
*/
void forceAddBookingDONTTOUCH(Booking booking) {
forceAddBookingDONTTOUCH(booking.getServiceprovider().getUsername(),
booking.getHomeowner().getUsername(),
booking.getService().getName(),
booking.getYear(), booking.getMonth(), booking.getDay(),
booking.getStarth(), booking.getStartmin(),
booking.getEndh(), booking.getEndmin(),
booking.getStatus());
}
/** /**
* So I got really tired of trying to figure out how to rate and book at the same time. * So I got really tired of trying to figure out how to rate and book at the same time.
* So Imma force it. * So Imma force it.
@ -1550,8 +1588,9 @@ public class DBHelper extends SQLiteOpenHelper {
* @param endmin * @param endmin
*/ */
void forceAddBookingDONTTOUCH(String serviceProvider, String homeOwner, String service, void forceAddBookingDONTTOUCH(String serviceProvider, String homeOwner, String service,
int year, int month, int day, int year, int month, int day,
int starth, int startmin, int endh, int endmin){ int starth, int startmin, int endh, int endmin,
Status status){
service = service.trim().toLowerCase(); service = service.trim().toLowerCase();
Cursor cursor = writeDB.query(TABLE_SERVICEPROVIDERS, new String[]{COLUMN_SERVICEPROVIDERNAME}, Cursor cursor = writeDB.query(TABLE_SERVICEPROVIDERS, new String[]{COLUMN_SERVICEPROVIDERNAME},
@ -1575,13 +1614,159 @@ public class DBHelper extends SQLiteOpenHelper {
contentValues.put(COLUMN_BOOKINGSERVICEPROVIDER, serviceProvider); contentValues.put(COLUMN_BOOKINGSERVICEPROVIDER, serviceProvider);
contentValues.put(COLUMN_BOOKINGHOMEOWNER, homeOwner); contentValues.put(COLUMN_BOOKINGHOMEOWNER, homeOwner);
contentValues.put(COLUMN_BOOKINGSERVICE, service); contentValues.put(COLUMN_BOOKINGSERVICE, service);
contentValues.put(COLUMN_BOOKINGSTATUS, Status.PENDING.toString()); contentValues.put(COLUMN_BOOKINGSTATUS, status.toString());
contentValues.put(COLUMN_RATING, 0); contentValues.put(COLUMN_RATING, 0);
writeDB.insert(TABLE_BOOKINGS, null, contentValues); writeDB.insert(TABLE_BOOKINGS, null, contentValues);
} }
/**
* Method called to add default values to app.
* Adds three
*/
private void setUp(){
//pre-add ten services
Service service = new Service("Dragon Tamer", 168.60);
Service service1 = new Service("Juggler", 14.35);
Service service2 = new Service("Bug Catcher", 6);
Service service3 = new Service("Firebreather", 72.3);
Service service4 = new Service("Spy", 900);
Service service5 = new Service("Thug", 123.45);
Service service6 = new Service("Baker", 25.60);
Service service7 = new Service("Maid", 13.20);
Service service8 = new Service("Butler", 496);
Service service9 = new Service("Gardener", 0);
addService(service);
addService(service1);
addService(service2);
addService(service3);
addService(service4);
addService(service5);
addService(service6);
addService(service7);
addService(service8);
addService(service9);
//pre-add an admin, three service providers, and three homeowners
ServiceProvider testing = new ServiceProvider(
"testing", "testing",
"TestFirst", "TestLast",
"1234 Test", "6136136163",
"Test Co", false,
"Tested 10 years");
ServiceProvider testing1 = new ServiceProvider(
"testing1", "testing",
"owo", "OwO",
"10 Weee", "8594738261",
"Independent", true,
"Hire me");
ServiceProvider testing2 = new ServiceProvider(
"testing2", "testing",
"Beep", "BOOP",
"33 Beep", "1833980091",
"Beepbeep", true,
"Beep beep lettuce");
HomeOwner tester = new HomeOwner("tester", "tester",
"Itest", "Testtest");
HomeOwner tester1 = new HomeOwner("tester1", "tester",
"Testest", "Testest");
HomeOwner tester2 = new HomeOwner("tester2", "tester",
"Robolectric", "Junit");
//add admin
addUser(new Admin());
//add first service provider
addUser(testing);
addServiceProvidedByUser("testing", "dragon tamer");
addServiceProvidedByUser("testing", "juggler");
addServiceProvidedByUser("testing", "bug catcher");
addServiceProvidedByUser("testing", "firebreather");
addServiceProvidedByUser("testing", "spy");
addServiceProvidedByUser("testing", "Baker");
addServiceProvidedByUser("testing", "Gardener");
for (int i = 0; i<6; i++){
testing.setAvailabilities(i, 0, 0, 23, 59);
}
updateAvailability(testing);
addUser(testing1);
addServiceProvidedByUser("testing1", "dragon tamer");
addServiceProvidedByUser("testing1", "juggler");
addServiceProvidedByUser("testing1", "firebreather");
addServiceProvidedByUser("testing1", "spy");
addServiceProvidedByUser("testing1", "thug");
for (int i = 0; i<4; i++){
testing1.setAvailabilities(i, 10-i, 0, 22-i, 0);
}
updateAvailability(testing1);
addUser(testing2);
addServiceProvidedByUser("testing2", "dragon tamer");
for (int i = 0; i<7; i = i+2){
testing2.setAvailabilities(i, i*2, 30, 5+(i*2), 59);
}
updateAvailability(testing2);
//add three homeowners
addUser(tester);
addUser(tester1);
addUser(tester2);
//add like ten bookings
Booking booking = new Booking(10, 0, 12, 15,
1, 10, 2018, testing, tester, service);
booking.setStatus(Status.CONFIRMED);
Booking booking1 = new Booking(13, 30, 14, 58,
1, 10, 2018, testing, tester1, service);
booking1.setStatus(Status.CANCELLED);
Booking booking2 = new Booking(10, 0, 12, 15,
2, 11, 2018, testing, tester, service);
booking2.setStatus(Status.CONFIRMED);
Booking booking3 = new Booking(10, 0, 12, 15,
3, 10, 2018, testing, tester, service);
booking3.setStatus(Status.PENDING);
Booking booking4 = new Booking(10, 0, 12, 15,
10, 11, 2018, testing, tester, service);
booking4.setStatus(Status.CONFIRMED);
Booking booking5 = new Booking(10, 0, 12, 15,
10, 10, 2018, testing2, tester, service);
booking5.setStatus(Status.CONFIRMED);
Booking booking6 = new Booking(10, 0, 12, 15,
1, 11, 2018, testing2, tester1, service);
booking6.setStatus(Status.CONFIRMED);
Booking booking7 = new Booking(10, 0, 12, 15,
3, 10, 2018, testing1, tester1, service);
booking7.setStatus(Status.CONFIRMED);
Booking booking8 = new Booking(10, 0, 12, 15,
4, 12, 2018, testing1, tester1, service);
Booking booking9 = new Booking(10, 0, 12, 15,
2, 12, 2018, testing1, tester1, service);
forceAddBookingDONTTOUCH(booking);
forceAddBookingDONTTOUCH(booking1);
forceAddBookingDONTTOUCH(booking2);
forceAddBookingDONTTOUCH(booking3);
forceAddBookingDONTTOUCH(booking4);
forceAddBookingDONTTOUCH(booking5);
forceAddBookingDONTTOUCH(booking6);
forceAddBookingDONTTOUCH(booking7);
forceAddBookingDONTTOUCH(booking8);
forceAddBookingDONTTOUCH(booking9);
addRating(booking, 5, "Amazing");
addRating(booking3, 1, "Never showed up");
addRating(booking5, 3, "Decent");
addRating(booking7, 4, "OK I guess");
}
/** /**
* Gets all items in a table * Gets all items in a table
* @param rawQuery SELECT * query * @param rawQuery SELECT * query