/// <summary> /// Get Store Member details using Customer Id /// </summary> /// <param name="customerId"></param> /// <returns>StoreMember Object</returns> public StoreMember GetStoreMemberByCustomerId(int customerId) { StoreMember storeMember = null; string selectStatement = "select * from dbo.StoreMembers WHERE MemberID = @MemberID "; using (SqlConnection connection = RentMeDBConnection.GetConnection()) { connection.Open(); using (SqlCommand selectCommand = new SqlCommand(selectStatement, connection)) { selectCommand.Parameters.AddWithValue("@MemberID", customerId); using (SqlDataReader reader = selectCommand.ExecuteReader()) { while (reader.Read()) { storeMember = this.RetrieveStoreMember(reader); } } } } return(storeMember); }
/// <summary> /// Adds Store Member to Database /// </summary> /// <param name="StoreMember">Store Member Object</param> /// <returns>true if record got inserted, else false</returns> public int AddStoreMember(StoreMember StoreMember) { string sqlStatement = "INSERT INTO dbo.StoreMembers (fName, lName, dob, phone, address1, address2, city, state, zipcode, sex) " + "VALUES (@FirstName, @LastName, @Dob, @Phone, @Address1, @Address2, @City, @State, @Zip, @Sex); SELECT SCOPE_IDENTITY() "; int customerId = 0; using (SqlConnection connection = RentMeDBConnection.GetConnection()) { connection.Open(); using (SqlCommand sqlCommand = new SqlCommand(sqlStatement, connection)) { sqlCommand.Parameters.AddWithValue("@FirstName", StoreMember.FirstName); sqlCommand.Parameters.AddWithValue("@LastName", StoreMember.LastName); sqlCommand.Parameters.AddWithValue("@Dob", StoreMember.Dob); sqlCommand.Parameters.AddWithValue("@Phone", StoreMember.Phone); sqlCommand.Parameters.AddWithValue("@Address1", StoreMember.Address1); sqlCommand.Parameters.AddWithValue("@Address2", StoreMember.Address2); sqlCommand.Parameters.AddWithValue("@City", StoreMember.City); sqlCommand.Parameters.AddWithValue("@State", StoreMember.State); sqlCommand.Parameters.AddWithValue("@Zip", StoreMember.Zip); sqlCommand.Parameters.AddWithValue("@Sex", StoreMember.Sex); customerId = Convert.ToInt32(sqlCommand.ExecuteScalar()); } } return(customerId); }
public ActionResult Register(StoreMember NewUser) { if (ModelState.IsValid == false)//沒通過驗證 { return(View()); } var member = (from s in db.StoreMember where s.suserid == NewUser.suserid select s).FirstOrDefault();//判斷是否重複帳號 if (member == null) { db.StoreMember.Add(NewUser); db.SaveChanges(); var sto = db.StoreMember.Where(m => m.suserid == NewUser.suserid).FirstOrDefault(); sto.sstatus = "0"; sto.sreport = "0"; sto.sdelivery = "0"; sto.sopen = "0"; db.SaveChanges(); Session["reg"] = NewUser.suserid;//紀錄註冊的帳號 //Session["Welcome"]=NewUser.sname + "歡迎光臨~"; return(RedirectToAction("SecondStep")); } ViewBag.Mes = "此帳號已有人使用!"; return(View()); }
/// <summary> /// Update Store Member Information /// </summary> /// <param name="storeMember">Store Member Object</param> /// <returns>true if storeMember got successfully updated else false</returns> public Boolean UpdateStoreMember(StoreMember storeMember) { string sqlStatement = "UPDATE dbo.StoreMembers set FName = @FName, LName = @LName, Phone = @Phone, Address1 = @Address1, Address2 = @Address2, City=@City, State=@State, ZipCode=@ZipCode, DOB=@DOB, Sex=@Sex WHERE MemberID=@MemberId "; using (SqlConnection connection = RentMeDBConnection.GetConnection()) { connection.Open(); using (SqlCommand sqlCommand = new SqlCommand(sqlStatement, connection)) { sqlCommand.Parameters.AddWithValue("@FName", storeMember.FirstName); sqlCommand.Parameters.AddWithValue("@LName", storeMember.LastName); sqlCommand.Parameters.AddWithValue("@Phone", storeMember.Phone); sqlCommand.Parameters.AddWithValue("@Address1", storeMember.Address1); sqlCommand.Parameters.AddWithValue("@Address2", storeMember.Address2); sqlCommand.Parameters.AddWithValue("@City", storeMember.City); sqlCommand.Parameters.AddWithValue("@State", storeMember.State); sqlCommand.Parameters.AddWithValue("@ZipCode", storeMember.Zip); sqlCommand.Parameters.AddWithValue("@DOB", storeMember.Dob); sqlCommand.Parameters.AddWithValue("@MemberId", storeMember.MemberID); sqlCommand.Parameters.AddWithValue("@Sex", storeMember.Sex); int execution = sqlCommand.ExecuteNonQuery(); if (execution > 0) { return(true); } } } return(false); }
/// <summary> /// Inserts Store Member to Database /// </summary> /// <param name="storeMember">store member entered by employee</param> public int Add(StoreMember storeMember) { if (storeMember == null) { throw new ArgumentNullException("Store Member cannot be empty"); } return(this.storeMemberDAL.AddStoreMember(storeMember)); }
/// <summary> /// This helper method searches for a customer by ID. /// </summary> private void SearchCustomerByID() { PhoneNumberSearchTextBox.Text = ""; FirstNameSearchTextBox.Text = ""; LastNameSearchTextBox.Text = ""; if (CustomerIDSearchTextBox.Text.Trim().Length < 1) { MessageBox.Show("Customer Id cannot be empty!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int customerId = 0; try { customerId = Convert.ToInt32(CustomerIDSearchTextBox.Text); } catch (Exception ex) { MessageBox.Show("Customer Id should be a Number!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } StoreMember storeMember = null; try { storeMember = this.storeMemberController.GetStoreMemberByCustomerId(customerId); } catch (Exception ex) { MessageBox.Show("Error while searching for Store Member!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (storeMember != null) { this.DisplayResults(storeMember); } else { MessageBox.Show("No Customer found!!!! - ", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// This method searches for a customer by name when the button is clicked. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NameSearchButton_Click(object sender, EventArgs e) { CustomerIDSearchTextBox.Text = ""; PhoneNumberSearchTextBox.Text = ""; if (FirstNameSearchTextBox.Text.Trim().Length < 1 || LastNameSearchTextBox.Text.Trim().Length < 1) { MessageBox.Show("Both First Name and Last Name has to be typed!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string firstName = FirstNameSearchTextBox.Text; string lastName = LastNameSearchTextBox.Text; StoreMember storeMember = null; try { List <StoreMember> storeMembers = this.storeMemberController.GetStoreMemberByName(firstName, lastName); if (storeMembers.Count > 1) { StoreMemberPicker storeMemberPicker = new StoreMemberPicker(storeMembers, this); storeMemberPicker.ShowDialog(); return; } else if (storeMembers.Count == 1) { storeMember = storeMembers[0]; } } catch (Exception ex) { MessageBox.Show("Error while searching for Store Member!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (storeMember != null) { this.DisplayResults(storeMember); } else { MessageBox.Show("No Customer found!!!! - ", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// This method searches for a customer by phone number when the button is clicked. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PhoneNumberSearchButton_Click(object sender, EventArgs e) { CustomerIDSearchTextBox.Text = ""; FirstNameSearchTextBox.Text = ""; LastNameSearchTextBox.Text = ""; if (!Regex.IsMatch(PhoneNumberSearchTextBox.Text.Trim(), @"\d\d\d-\d\d\d-\d\d\d\d")) { MessageBox.Show("Phone Number should be XXX-XXX-XXXX format!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string phoneNumber = PhoneNumberSearchTextBox.Text; StoreMember storeMember = null; try { List <StoreMember> storeMembers = this.storeMemberController.GetStoreMemberByPhoneNumber(phoneNumber); if (storeMembers.Count > 1) { StoreMemberPicker storeMemberPicker = new StoreMemberPicker(storeMembers, this); storeMemberPicker.ShowDialog(); return; } else if (storeMembers.Count == 1) { storeMember = storeMembers[0]; } } catch (Exception ex) { MessageBox.Show("Error while searching for Store Member!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (storeMember != null) { this.DisplayResults(storeMember); } else { MessageBox.Show("No Customer found!!!! - ", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// This method updates the specified customer in the database using the parameters entered on the form. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SaveButton_Click(object sender, EventArgs e) { if (this.CustomerIDLabel.Text.Length < 1) { MessageBox.Show("Search for a Customer before Saving!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var storeMember = new StoreMember { MemberID = Convert.ToInt32(this.CustomerIDLabel.Text), FirstName = this.FirstNameTextBox.Text, LastName = this.LastNameTextBox.Text, Phone = this.PhoneNumberTextBox.Text, Dob = this.DateOfBirthPicker.Value, Address1 = this.Address1TextBox.Text, Address2 = this.Address2TextBox.Text, City = this.CityTextBox.Text, State = this.StateComboBox.Text, Sex = this.GenderComboBox.Text, Zip = this.ZipCodeTextBox.Text }; if (Validator.ValidateStoreMember(storeMember)) { return; } try { this.storeMemberController.UpdateStoreMember(storeMember); } catch (Exception ex) { MessageBox.Show("Error while updating Store Member!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show("Store Member has been Updated", "Store Member Updated", MessageBoxButtons.OK, MessageBoxIcon.Information); this.ClearAll(); }
/// <summary> /// This helper method returns a store member with the attributes from the database. /// </summary> /// <param name="reader">The SqlDataReader.</param> /// <returns>A store member with the attributes from the database.</returns> private StoreMember RetrieveStoreMember(SqlDataReader reader) { StoreMember storeMember = new StoreMember(); storeMember.MemberID = Convert.ToInt32(reader["MemberID"]); storeMember.FirstName = reader["FName"].ToString(); storeMember.LastName = reader["LName"].ToString(); storeMember.Phone = reader["Phone"].ToString(); storeMember.Address1 = reader["Address1"].ToString(); storeMember.Address2 = reader["Address2"].ToString(); storeMember.City = reader["City"].ToString(); storeMember.State = reader["State"].ToString(); storeMember.Zip = reader["ZipCode"].ToString(); storeMember.Dob = (DateTime)reader["DOB"]; storeMember.Sex = reader["Sex"].ToString(); return(storeMember); }
/// <summary> /// This helper method displays the search results. /// </summary> /// <param name="storeMember"></param> private void DisplayResults(StoreMember storeMember) { this.CustomerIDLabel.Text = Convert.ToString(storeMember.MemberID); this.FirstNameTextBox.Text = storeMember.FirstName; this.LastNameTextBox.Text = storeMember.LastName; this.PhoneNumberTextBox.Text = storeMember.Phone; this.Address1TextBox.Text = storeMember.Address1; this.Address2TextBox.Text = storeMember.Address2; this.CityTextBox.Text = storeMember.City; ComboBoxUtil.UpdateStateComboBox(this.StateComboBox); this.StateComboBox.SelectedItem = storeMember.State; ComboBoxUtil.UpdateGenderComboBox(this.GenderComboBox); this.GenderComboBox.SelectedItem = storeMember.Sex; this.ZipCodeTextBox.Text = storeMember.Zip; this.DateOfBirthPicker.Value = storeMember.Dob; this.viewRentalsUserControl.storeMemberID = this.CustomerIDLabel.Text; this.viewRentalsUserControl.RefreshListView(); this.viewReturnsUserControl.storeMemberID = this.CustomerIDLabel.Text; this.viewReturnsUserControl.RefreshListView(); }
/// <summary> /// This method adds a store member to the database using the parameters entered on the form when the button is clicked. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddCustomerButton_Click(object sender, EventArgs e) { try { var storeMember = new StoreMember { FirstName = this.FirstNameTextBox.Text, LastName = this.LastNameTextBox.Text, Phone = this.PhoneTextBox.Text, Dob = this.DateOfBirthPicker.Value, Address1 = this.Address1TextBox.Text, Address2 = this.Address2TextBox.Text, City = this.CityTextBox.Text, State = this.StateComboBox.Text, Zip = this.ZipCodeTextBox.Text, Sex = this.GenderComboBox.Text }; if (Validator.ValidateStoreMember(storeMember)) { return; } int customerId = this.storeMemberController.Add(storeMember); MessageBox.Show("Store Member has been created with Customer Id - " + customerId, "Store Member Created", MessageBoxButtons.OK, MessageBoxIcon.Information); this.ClearAll(); } catch (Exception ex) { MessageBox.Show("Error while creating Store Member!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Update Store Member Information /// </summary> /// <param name="storeMember">Store Member Object</param> /// <returns>true if storeMember got successfully updated else false</returns> public Boolean UpdateStoreMember(StoreMember storeMember) { return(this.storeMemberDAL.UpdateStoreMember(storeMember)); }
/// <summary> /// This method checks out with the current cart when clicked. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CheckoutButton_Click(object sender, EventArgs e) { if (CustomerIDTextBox.Text.Trim().Length < 1) { MessageBox.Show("Customer Id cannot be empty!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int customerId = 0; try { customerId = Convert.ToInt32(CustomerIDTextBox.Text); } catch (Exception ex) { MessageBox.Show("Customer Id should be a Number!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } EmployeeDashboard.cart.MemberID = customerId; EmployeeDashboard.cart.RentalStartDate = RentalStartTimePicker.Value; EmployeeDashboard.cart.RentalEndDate = RentalEndTimePicker.Value; if (Validator.ValidateCart(EmployeeDashboard.cart)) { return; } Console.WriteLine("Validation is fine"); // Check if memberId is valid StoreMember storeMember = null; try { storeMember = this.storeMemberController.GetStoreMemberByCustomerId(customerId); } catch (Exception ex) { MessageBox.Show("Error while getting Store Member information!!!! - " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (storeMember != null) { // Find Total amount due double totalAmount = 0; int rentalDays = (int)Math.Round(RentalEndTimePicker.Value.Subtract(RentalStartTimePicker.Value).TotalDays); for (int i = 0; i < EmployeeDashboard.cart.Items.Count; i++) { CartItem item = EmployeeDashboard.cart.Items[i]; totalAmount += (item.Quantity * item.DailyRentalRate * rentalDays); } // Show confirmation with final amount String message = "Total rental cost for the customer - " + storeMember.FirstName + " " + storeMember.LastName + " is " + totalAmount; DialogResult dr = MessageBox.Show(message, "Confirm Cost for rental", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) { // Place order Boolean isInserted = this.rentalTransactionController.InsertRentalTransaction(EmployeeDashboard.cart); if (!isInserted) { MessageBox.Show("Error while creating rental transaction!!!! - ", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MessageBox.Show("Rental transaction successful!!!! - ", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information); ClearAllCart(); } } else { MessageBox.Show("No Customer found!!!! - ", "Information!", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// This method provides store member validation. /// </summary> /// <param name="storeMember">The store member to be validated.</param> /// <returns>False if and only if all parameters are valid.</returns> public static Boolean ValidateStoreMember(StoreMember storeMember) { if (storeMember.FirstName.Trim().Length < 1) { MessageBox.Show("First Name cannot be empty!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (storeMember.LastName.Trim().Length < 1) { MessageBox.Show("Last Name cannot be empty!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (!Regex.IsMatch(storeMember.Phone, @"\d\d\d-\d\d\d-\d\d\d\d")) { MessageBox.Show("Phone should be in XXX-XXX-XXXX format!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (storeMember.Dob == null) { MessageBox.Show("Date of Birth cannot be empty!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (GetDifferenceInYears(storeMember.Dob, DateTime.Now) < 18) { MessageBox.Show("Customer below 18 years cannot be registered!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (storeMember.Address1.Trim().Length < 1 || storeMember.City.Trim().Length < 1 || storeMember.State.Trim().Length < 1 || storeMember.Zip.Trim().Length < 1) { MessageBox.Show("All mandatory address fields should be filled!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (!Regex.IsMatch(storeMember.Zip, @"^(\d{5}(?:\-\d{4})?)$")) { MessageBox.Show("Invalid Zip code Should be in the format 11111 or 11111-1111!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } if (storeMember.Sex.Trim().Length < 1) { MessageBox.Show("Gender has to be selected!!!!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } return(false); }