Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }