public void RegisterTestWithValidMember() { var customer = new RegisteringMember { First = "First", Last = "Last", Email = "Test", ConfirmEmail = "Test", Password = "******", ConfirmPassword = "******", Address = new Address { StreetAddress = "Address", State = "GA", Zip = "31035" } }; var mockCustomerDal = new MockMemberDal { ThrowError = false }; var controller = new AccountsController(mockCustomerDal, new MockRentalDal()); var result = (ViewResult)controller.Register(customer); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual("Register", result.ViewName); Assert.AreEqual("You're Registered!", result.ViewData["SuccessMessage"]); }
public void RegisterMember(RegisteringMember member) { if (this.ThrowError) { throw new Exception(); } }
public void RegisterCustomerValidTest() { var customerDal = new MemberDal(); var customer = new RegisteringMember { ConfirmEmail = "confirmEmail", ConfirmPassword = "******", Email = "confirmEmail", First = "TestCustomerForTesting", Last = "TestCustomer", Password = "******", Address = new Address { StreetAddress = "Address", State = "GA", Zip = "30135" } }; customerDal.RegisterMember(customer); var result = customerDal.Authenticate("confirmEmail", "confirmPassword"); this.cleanDataBase(customer); Assert.AreEqual(1, result); }
public IActionResult Login(Member user) { try { if (ModelState.IsValid) { if (this.memberDal.Authenticate(user.Email, user.Password) == 1) { CurrentUser = new Member { Email = user.Email, Password = user.Password }; var members = this.memberDal.GetAllMembers(); var member = new RegisteringMember(); try { member = members.First(curr => curr.Email == user.Email); } catch (Exception e) { ViewBag.Error = "Invalid login"; return(View("Index")); } if (member.IsBlacklisted == 0) { return(RedirectToAction("LibrariansChoice", "Borrow")); } else { ViewBag.ErrorMessage = "Blacklisted"; ViewBag.Error = "Sorry, you have been blacklisted."; CurrentUser = null; return(View("Index")); } } if (this.librarianDal.Authenticate(user.Email, user.Password) == 1) { CurrentLibrarian = new Librarian { Email = user.Email, Password = user.Password }; return(RedirectToAction("LibrariansChoice", "Borrow")); } } } catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; ViewBag.Error = "Whoops, try again. Something went wrong."; return(View("Index")); } ViewBag.Error = "Invalid login"; return(View("Index")); }
private void cleanDataBase(RegisteringMember customer) { try { var conn = DbConnection.GetConnection(); using (conn) { conn.Open(); using var transaction = conn.BeginTransaction(); var query = "delete from address where memberID = (select memberID from member where email = @email);"; using (var cmd = new MySqlCommand(query, conn)) { cmd.Transaction = transaction; cmd.Parameters.Add("@email", MySqlDbType.VarChar); cmd.Parameters["@email"].Value = customer.Email; if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } cmd.Parameters.Clear(); cmd.CommandText = "delete from member where email = @email;"; cmd.Parameters.Add("@email", MySqlDbType.VarChar); cmd.Parameters["@email"].Value = customer.Email; if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } cmd.Parameters.Clear(); cmd.CommandText = "delete from user where fname = @fname"; cmd.Parameters.Add("@fname", MySqlDbType.VarChar); cmd.Parameters["@fname"].Value = customer.First; if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } transaction.Commit(); } } conn.Close(); } catch (Exception ex) { throw ex; } }
/// <summary> /// Gets all members that have overdue rentals /// </summary> /// <returns> all members that have overdue rentals or an error if something went wrong with thd DB</returns> public List <RegisteringMember> GetOverdueMembers() { var members = new List <RegisteringMember>(); try { var conn = DbConnection.GetConnection(); using (conn) { conn.Open(); var query = "select DISTINCT(email), member.memberID, fname, lname from member, user, rental_transaction, status_history, `status` " + "where member.memberID = userID and member.memberID = rental_transaction.memberID " + "and rentalTransactionID = rentalID and status_history.statusID = `status`.statusID and returnDateTime < CURDATE() and `status`.`status` != 'Returned' and status_history.statusID = (select max(s1.statusID) from status_history s1 where " + "s1.rentalTransactionID = rental_transaction.rentalID);"; using (var cmd = new MySqlCommand(query, conn)) { using (var reader = cmd.ExecuteReader()) { var emailOrdinal = reader.GetOrdinal("email"); var idOrdinal = reader.GetOrdinal("memberID"); var fNameOrdinal = reader.GetOrdinal("fname"); var lNameOrdinal = reader.GetOrdinal("lname"); while (reader.Read()) { var email = reader[emailOrdinal] == DBNull.Value ? "null" : reader.GetString(emailOrdinal); var fName = reader[fNameOrdinal] == DBNull.Value ? "null" : reader.GetString(fNameOrdinal); var lName = reader[lNameOrdinal] == DBNull.Value ? "null" : reader.GetString(lNameOrdinal); var memberId = reader.GetInt32(idOrdinal); var member = new RegisteringMember { Email = email, First = fName, Last = lName, MemberId = memberId }; members.Add(member); } } } conn.Close(); } } catch (Exception ex) { throw ex; } return(members); }
/// <summary> /// Gets all the members from the db /// </summary> /// <returns>all the members from the db or an error if something went wrong</returns> public List <RegisteringMember> GetAllMembers() { var members = new List <RegisteringMember>(); try { var conn = DbConnection.GetConnection(); using (conn) { conn.Open(); var query = "select * from member, user where memberID = userID"; using (var cmd = new MySqlCommand(query, conn)) { using (var reader = cmd.ExecuteReader()) { var emailOrdinal = reader.GetOrdinal("email"); var idOrdinal = reader.GetOrdinal("memberID"); var fNameOrdinal = reader.GetOrdinal("fname"); var lNameOrdinal = reader.GetOrdinal("lname"); var blacklistedOrdinal = reader.GetOrdinal("blacklisted"); while (reader.Read()) { var email = reader[emailOrdinal] == DBNull.Value ? "null" : reader.GetString(emailOrdinal); var fName = reader[fNameOrdinal] == DBNull.Value ? "null" : reader.GetString(fNameOrdinal); var lName = reader[lNameOrdinal] == DBNull.Value ? "null" : reader.GetString(lNameOrdinal); var memberId = reader.GetInt32(idOrdinal); var blacklisted = reader.GetInt32(blacklistedOrdinal); var member = new RegisteringMember { Email = email, First = fName, Last = lName, MemberId = memberId, IsBlacklisted = blacklisted }; members.Add(member); } } } conn.Close(); } } catch (Exception ex) { throw ex; } return(members); }
public void RegisterTestWithExceptionThrownFromDb() { var customer = new RegisteringMember(); var mockCustomerDal = new MockMemberDal { ThrowError = true }; var controller = new AccountsController(mockCustomerDal, new MockRentalDal()); var result = (ViewResult)controller.Register(customer); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual(null, result.ViewName); Assert.AreEqual(customer, result.Model); Assert.AreEqual("Exception of type 'System.Exception' was thrown.", result.ViewData["ErrorMessage"]); }
public void RegisterTestWithInValidCustomer() { var customer = new RegisteringMember(); var mockCustomerDal = new MockMemberDal { ThrowError = false }; var controller = new AccountsController(mockCustomerDal, new MockRentalDal()); controller.ModelState.AddModelError("test", "test"); var result = (ViewResult)controller.Register(customer); Assert.IsInstanceOfType(result, typeof(ViewResult)); Assert.AreEqual(null, result.ViewName); Assert.AreEqual(customer, result.Model); }
public IActionResult Register(RegisteringMember member) { if (ModelState.IsValid) { try { this.memberDal.RegisterMember(member); } catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; return(View(member)); } ModelState.Clear(); ViewBag.SuccessMessage = "You're Registered!"; return(View("Register", new RegisteringMember())); } else { return(View(member)); } }
/// <summary> /// Registers the member on the database /// </summary> /// <param name="member">The member being registered </param> /// @precondition none /// @postcondition the member is registered or an error is thrown if something goes wrong on the database public void RegisterMember(RegisteringMember member) { try { var conn = DbConnection.GetConnection(); using (conn) { conn.Open(); using var transaction = conn.BeginTransaction(); var query = "insert into user(fname, lname, password) values (@fname, @lname, @password)"; using (var cmd = new MySqlCommand(query, conn)) { cmd.Transaction = transaction; cmd.Parameters.Add("@fname", MySqlDbType.VarChar); cmd.Parameters["@fname"].Value = member.First; cmd.Parameters.Add("@lname", MySqlDbType.VarChar); cmd.Parameters["@lname"].Value = member.Last; cmd.Parameters.Add("@password", MySqlDbType.VarChar); cmd.Parameters["@password"].Value = member.Password; if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } cmd.Parameters.Clear(); cmd.CommandText = "insert into member(memberID, email) values (last_insert_id(), @email)"; cmd.Parameters.Add("@email", MySqlDbType.VarChar); cmd.Parameters["@email"].Value = member.Email; if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } cmd.Parameters.Clear(); cmd.CommandText = "insert into address(memberID, address, state, zip) values " + "((select memberID from member where email = @memberEmail), @address, @state, @zip)"; cmd.Parameters.AddWithValue("@memberEmail", member.Email); cmd.Parameters.AddWithValue("@address", member.Address.StreetAddress); cmd.Parameters.AddWithValue("@state", member.Address.State); cmd.Parameters.AddWithValue("@zip", member.Address.Zip); if (cmd.ExecuteNonQuery() != 1) { transaction.Rollback(); } transaction.Commit(); } conn.Close(); } } catch (Exception ex) { throw ex; } }