Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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));
        }
Ejemplo n.º 6
0
        /// <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);
            }
        }
Ejemplo n.º 7
0
        /// <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);
            }
        }
Ejemplo n.º 8
0
        /// <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);
            }
        }
Ejemplo n.º 9
0
        /// <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();
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
 /// <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();
 }
Ejemplo n.º 12
0
        /// <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);
            }
        }
Ejemplo n.º 13
0
 /// <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));
 }
Ejemplo n.º 14
0
        /// <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);
            }
        }
Ejemplo n.º 15
0
        /// <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);
        }