private void logButton_Click(object sender, EventArgs e) { PatronLoginStatus loggedIn = PatronLoginStatus.MISCERROR; if (String.IsNullOrEmpty(idTextbox.Text)) { MessageBox.Show("Please input an ID!"); } else if (!DatabaseInputValidation.uintIsValid(idTextbox.Text)) { MessageBox.Show("User ID must be a number!"); } else { loggedIn = Database.Instance.patron_login(idTextbox.Text); string status; switch (loggedIn) { case PatronLoginStatus.MISCERROR: status = "Login failed!"; break; case PatronLoginStatus.PATRONNOTFOUND: status = "Patron not found!"; break; case PatronLoginStatus.WAVEREXPIRED: status = "Waver expired! Please resign the waver."; break; case PatronLoginStatus.PATRONSUSPENDED: status = "Patron currently suspended!"; break; case PatronLoginStatus.SUCCESS: status = "Login successful!"; break; case PatronLoginStatus.PATRONSUSPCLEAR: status = "Patron Suspension Cleared, Please Re-Enter your Login!"; break; default: status = "what"; break; } MessageBox.Show(status); } }
public PatronLoginStatus patron_login(string ID) { DateTime dt = DateTime.Now; int suspColNum = 13; int first_log; int userID = Int32.Parse(ID); string cmd_str = "SELECT * FROM climbing_wall.patron WHERE PatronID = @ID"; MySqlCommand cmd = new MySqlCommand(cmd_str, connection); cmd.CommandText = cmd_str; cmd.Parameters.AddWithValue("@ID", userID); MySqlDataReader reader; try { reader = cmd.ExecuteReader(); } catch (MySqlException ex) { MessageBox.Show(ex.Message); return(PatronLoginStatus.MISCERROR); } if (!reader.HasRows) { reader.Close(); return(PatronLoginStatus.PATRONNOTFOUND); } reader.Read(); if (!reader.IsDBNull(suspColNum)) { int suspID = reader.GetInt16("FK_Suspend"); reader.Close(); PatronLoginStatus status = checkSuspensions(suspID, ref reader); if (status != PatronLoginStatus.SUCCESS) { return(status); } if (status == PatronLoginStatus.SUCCESS) { return(PatronLoginStatus.PATRONSUSPCLEAR); } } reader.Read(); DateTime waverExp; try { waverExp = reader.GetDateTime("WaiverExp"); } catch { waverExp = DateTime.MinValue; } DateTime currentDate = DateTime.Today; PatronLoginStatus waverStatus = PatronLoginStatus.SUCCESS; if (waverExp == DateTime.MinValue || currentDate.Date.CompareTo(waverExp) > 0) { waverStatus = PatronLoginStatus.WAVEREXPIRED; } if (waverStatus != PatronLoginStatus.SUCCESS) { reader.Close(); return(waverStatus); } reader.Close(); cmd_str = "insert into climbing_wall.log_table (FK_Patron_ID, Log_DateTime) VALUES (@id, @dt)"; cmd = new MySqlCommand(cmd_str, connection); cmd.CommandText = cmd_str; cmd.Parameters.AddWithValue("@id", userID); cmd.Parameters.AddWithValue("@dt", dt); try { cmd.ExecuteNonQuery(); } catch (MySqlException ex) { MessageBox.Show(ex.Message); return(PatronLoginStatus.MISCERROR); } long lastInsert = cmd.LastInsertedId; cmd_str = "SELECT * FROM climbing_wall.patron WHERE PatronID = @ID"; cmd = new MySqlCommand(cmd_str, connection); cmd.CommandText = cmd_str; cmd.Parameters.AddWithValue("@ID", userID); reader = cmd.ExecuteReader(); var ordinal = reader.GetOrdinal("FK_FirstLog"); reader.Read(); if (reader.IsDBNull(ordinal)) { first_log = (int)lastInsert; } else { first_log = reader.GetInt32("FK_FirstLog"); } reader.Close(); cmd_str = "UPDATE `climbing_wall`.`patron` SET `New_Flag`='0', `FK_FirstLog` = @fLog, `FK_LatestLog` = @lLog WHERE `PatronID` = @id"; cmd = new MySqlCommand(cmd_str, connection); cmd.CommandText = cmd_str; cmd.Parameters.AddWithValue("@id", userID); cmd.Parameters.AddWithValue("@flog", first_log); cmd.Parameters.AddWithValue("@lLog", (int)lastInsert); try { cmd.ExecuteNonQuery(); } catch (MySqlException ex) { MessageBox.Show(ex.Message); return(PatronLoginStatus.MISCERROR); } return(PatronLoginStatus.SUCCESS); }