/// <summary>
 /// Gets a account from the database
 /// </summary>
 /// <param name="email">email to login with</param>
 /// <returns></returns>
 public Account GetAccount(string email)
 {
     try
     {
         int someid = -1;
         someid = GetClientIdByEmail(email);
         if (someid != -1)
         {
             Connect();
             Client returnclient = null;
             using (cmd = new OracleCommand())
             {
                 cmd.Connection = con;
                 cmd.CommandType = CommandType.Text;
                 cmd.CommandText = "SELECT * FROM TACCOUNT A, TGEBRUIKER G, THULPBEHOEVENDE H WHERE A.ID = G.ACCOUNTID AND H.GEBRUIKERID = G.ID AND LOWER(A.EMAIL) =  LOWER(:email)";
                 cmd.Parameters.Add("email", email);
                 dr = cmd.ExecuteReader();
                 while (dr.Read())
                 {
                     var accountid = SafeReadInt(dr, 0);
                     var username = SafeReadString(dr, 1);
                     var password = SafeReadString(dr, 2);
                     var clientemail = SafeReadString(dr, 3);
                     var userid = SafeReadInt(dr, 4);
                     var name = SafeReadString(dr, 5);
                     var adress = SafeReadString(dr, 6);
                     var location = SafeReadString(dr, 7);
                     var phonenumber = SafeReadString(dr, 8);
                     var haslicense = SafeReadString(dr, 9);
                     var hascar = SafeReadString(dr, 10);
                     var unsubscribedate = SafeReadDateTime(dr, 11);
                     var trash1 = SafeReadInt(dr, 12);
                     var clientid = SafeReadInt(dr, 13);
                     var ovpossible = SafeReadString(dr, 14);
                     var thrash2 = SafeReadInt(dr, 15);
                     // Create
                     returnclient = new Client(accountid, username, password, clientemail, userid, name, adress, location, phonenumber, haslicense, hascar, clientid, ovpossible, unsubscribedate);
                 }
                 return returnclient;
             }
         }
         someid = GetVolunteerIdByEmail(email);
         if (someid != -1)
         {
             Connect();
             Volunteer returnvolunteer = null;
             using (cmd = new OracleCommand())
             {
                 cmd.Connection = con;
                 cmd.CommandType = CommandType.Text;
                 cmd.CommandText = "SELECT * FROM TACCOUNT A, TGEBRUIKER G, TVRIJWILLIGER V WHERE A.ID = G.ACCOUNTID AND G.ID = V.GEBRUIKERID AND LOWER(A.EMAIL) = LOWER(:email)";
                 cmd.Parameters.Add("email", email);
                 dr = cmd.ExecuteReader();
                 while (dr.Read())
                 {
                     var accountid = SafeReadInt(dr, 0);
                     var username = SafeReadString(dr, 1);
                     var password = SafeReadString(dr, 2);
                     var volunteeremail = SafeReadString(dr, 3);
                     var userid = SafeReadInt(dr, 4);
                     var name = SafeReadString(dr, 5);
                     var adress = SafeReadString(dr, 6);
                     var location = SafeReadString(dr, 7);
                     var phonenumber = SafeReadString(dr, 8);
                     var haslicense = SafeReadString(dr, 9);
                     var hascar = SafeReadString(dr, 10);
                     var unsubscribedate = SafeReadDateTime(dr, 11);
                     var trash1 = SafeReadInt(dr, 12);
                     var volunteerid = SafeReadInt(dr, 13);
                     var dateofbirth = SafeReadDateTime(dr, 14);
                     var pathtophoto = SafeReadString(dr, 15);
                     var pathtovog = SafeReadString(dr, 16);
                     var thrash2 = SafeReadInt(dr, 17);
                     // Create
                     returnvolunteer = new Volunteer(accountid, username, password, volunteeremail, userid, name, adress, location, phonenumber, haslicense, hascar, unsubscribedate, volunteerid, dateofbirth, pathtophoto, pathtovog);
                 }
                 return returnvolunteer;
             }
         }
         someid = GetAdminIdByEmail(email);
         if (someid != -1)
         {
             Connect();
             Admin returnadmin = null;
             using (cmd = new OracleCommand())
             {
                 cmd.Connection = con;
                 cmd.CommandType = CommandType.Text;
                 cmd.CommandText = "SELECT A.ID, A.GEBRUIKERSNAAM, A.WACHTWOORD, A.EMAIL, B.ID FROM TACCOUNT A, TBEHEERDER B WHERE A.ID = B.ACCOUNTID AND LOWER(A.EMAIL) = LOWER(:email)";
                 cmd.Parameters.Add("email", email);
                 dr = cmd.ExecuteReader();
                 while (dr.Read())
                 {
                     var accountid = SafeReadInt(dr, 0);
                     var username = SafeReadString(dr, 1);
                     var password = SafeReadString(dr, 2);
                     var adminemail = SafeReadString(dr, 3);
                     var adminid = SafeReadInt(dr, 4);
                     // Create
                     returnadmin = new Admin(accountid, username, password, adminemail, adminid);
                 }
                 return returnadmin;
             }
         }
         else // Nothing found with that email
         {
             return null;
         }
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine(ex.Message);
         return null;
     }
     finally
     {
         Disconnect();
     }
 }