public static ArrayList SelectAllPersonEvents(int personID)
{
SqliteDataReader reader;
ArrayList arraySessions = new ArrayList(2);
ArrayList arrayJumps = new ArrayList(2);
ArrayList arrayJumpsRj = new ArrayList(2);
ArrayList arrayRuns = new ArrayList(2);
ArrayList arrayRunsInterval = new ArrayList(2);
ArrayList arrayRTs = new ArrayList(2);
ArrayList arrayPulses = new ArrayList(2);
ArrayList arrayMCs = new ArrayList(2);
ArrayList arrayEncS = new ArrayList(2);
ArrayList arrayEncC = new ArrayList(2);
string tps = Constants.PersonSessionTable;
Sqlite.Open();
//session where this person is loaded
dbcmd.CommandText = "SELECT sessionID, session.Name, session.Place, session.Date " +
" FROM " + tps + ", session " +
" WHERE personID = " + personID + " AND session.uniqueID == " + tps + ".sessionID " +
" ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arraySessions.Add ( reader[0].ToString() + ":" + reader[1].ToString() + ":" +
reader[2].ToString() + ":" +
UtilDate.FromSql(reader[3].ToString()).ToShortDateString()
);
}
reader.Close();
//jumps
dbcmd.CommandText = "SELECT sessionID, count(*) FROM jump WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayJumps.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//jumpsRj
dbcmd.CommandText = "SELECT sessionID, count(*) FROM jumpRj WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayJumpsRj.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//runs
dbcmd.CommandText = "SELECT sessionID, count(*) FROM run WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayRuns.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//runsInterval
dbcmd.CommandText = "SELECT sessionID, count(*) FROM runInterval WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayRunsInterval.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//reaction time
dbcmd.CommandText = "SELECT sessionID, count(*) FROM reactiontime WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayRTs.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//pulses
dbcmd.CommandText = "SELECT sessionID, count(*) FROM pulse WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayPulses.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//MC
dbcmd.CommandText = "SELECT sessionID, count(*) FROM multiChronopic WHERE personID = " + personID +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayMCs.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//EncS (encoder signal)
dbcmd.CommandText = "SELECT sessionID, count(*) FROM " + Constants.EncoderTable +
" WHERE personID == " + personID +
" AND signalOrCurve == \"signal\" " +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayEncS.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
//EncC (encoder curve)
dbcmd.CommandText = "SELECT sessionID, count(*) FROM " + Constants.EncoderTable +
" WHERE personID == " + personID +
" AND signalOrCurve == \"curve\" " +
" GROUP BY sessionID ORDER BY sessionID";
LogB.SQL(dbcmd.CommandText.ToString());
reader = dbcmd.ExecuteReader();
while(reader.Read()) {
arrayEncC.Add ( reader[0].ToString() + ":" + reader[1].ToString() );
}
reader.Close();
Sqlite.Close();
ArrayList arrayAll = new ArrayList(2);
string tempJumps;
string tempJumpsRj;
string tempRuns;
string tempRunsInterval;
string tempRTs;
string tempPulses;
string tempMCs;
string tempEncS;
string tempEncC;
bool found; //using found because a person can be loaded in a session
//but whithout having done any event yet
//foreach session where this jumper it's loaded, check which events has
foreach (string mySession in arraySessions) {
string [] myStrSession = mySession.Split(new char[] {':'});
tempJumps = "";
tempJumpsRj = "";
tempRuns = "";
tempRunsInterval = "";
tempRTs = "";
tempPulses = "";
tempMCs = "";
tempEncS = "";
tempEncC = "";
found = false;
foreach (string myJumps in arrayJumps) {
string [] myStr = myJumps.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempJumps = myStr[1];
found = true;
break;
}
}
foreach (string myJumpsRj in arrayJumpsRj) {
string [] myStr = myJumpsRj.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempJumpsRj = myStr[1];
found = true;
break;
}
}
foreach (string myRuns in arrayRuns) {
string [] myStr = myRuns.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempRuns = myStr[1];
found = true;
break;
}
}
foreach (string myRunsInterval in arrayRunsInterval) {
string [] myStr = myRunsInterval.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempRunsInterval = myStr[1];
found = true;
break;
}
}
foreach (string myRTs in arrayRTs) {
string [] myStr = myRTs.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempRTs = myStr[1];
found = true;
break;
}
}
foreach (string myPulses in arrayPulses) {
string [] myStr = myPulses.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempPulses = myStr[1];
found = true;
break;
}
}
foreach (string myMCs in arrayMCs) {
string [] myStr = myMCs.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempMCs = myStr[1];
found = true;
break;
}
}
foreach (string myEncS in arrayEncS) {
string [] myStr = myEncS.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempEncS = myStr[1];
found = true;
break;
}
}
foreach (string myEncC in arrayEncC) {
string [] myStr = myEncC.Split(new char[] {':'});
if(myStrSession[0] == myStr[0]) {
tempEncC = myStr[1];
found = true;
break;
}
}
//if has events, write it's data
if (found) {
arrayAll.Add (myStrSession[1] + ":" + myStrSession[2] + ":" + //session name, place
myStrSession[3] + ":" + tempJumps + ":" + //sessionDate, jumps
tempJumpsRj + ":" + tempRuns + ":" + //jumpsRj, Runs
tempRunsInterval + ":" + tempRTs + ":" + //runsInterval, Reaction times
tempPulses + ":" + tempMCs + ":" + //pulses, MultiChronopic
tempEncS + ":" + tempEncC //encoder signal, encoder curve
);
}
}
return arrayAll;
}