package com.andreiolar.abms.server;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.andreiolar.abms.client.rpc.DBGetFinishedVoteIds;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class DBGetFinishedVoteIdsImpl extends RemoteServiceServlet implements DBGetFinishedVoteIds {
private static final long serialVersionUID = -4995794912138693937L;
@Override
public List<String> getFinishedVoteIds(boolean all) throws Exception {
List<String> finishedVoteIds = new ArrayList<String>();
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = MyConnection.getConnection();
try {
String q = "select vote_id from votes where active='false' group by vote_id";
if (all) {
q = "select vote_id from votes group by vote_id";
}
stmt = conn.prepareStatement(q);
rs = stmt.executeQuery();
while (rs.next()) {
int voteId = rs.getInt("vote_id");
finishedVoteIds.add(String.valueOf(voteId));
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
rs.close();
stmt.close();
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
conn.close();
}
if (finishedVoteIds == null || finishedVoteIds.isEmpty()) {
throw new Exception("There are currently no finished votes in order for you to view results for.");
}
return finishedVoteIds;
}
}