This assignment requires the creation of two pages Use the code-behind file opti
This assignment requires the creation of two pages Use the code-behind file option wherever possible. Remember to create the
Create an ASP.NET page named order.aspx consistent with the sample and with these features:
Use your actual name instead of “Your Name” in the heading.
The page content is not presented all at once. Instead, the content is presented in steps using a set of navigation links (with yellow background) on the left as well as navigation buttons within each step. The link for the Receipt step should not be clickable, i.e., it should not be feasible to navigate directly to that step. (Hint: Consider the Wizard control.)
Each step should have a common header “Order Process” in bold text.
When the page loads initially, the Customer step must be presented first. Also, in this step:There should be text, textboxes, and a button as shown. Note that the Address textbox should allow multiple lines of data entry.
The name, email, and address should be required to proceed to the next step. Also, the user must retype the email address.
The email address structure should be consistent with that of valid email addresses.
The email as retyped must match the email address initially entered.
If a user attempts to proceed to the next step while any of the above conditions are not met, a message box (see sample) should pop up and/or the message should be displayed in the page. It should have text (“Note: * are required fields”) followed by a list of appropriate error messages. If any required fields are empty, an asterisk (*) should appear next to them.
Clicking the Next button should lead to the Product 1 step.
In the Product 1 step:There should be text, a textbox, a checkbox, and buttons as shown.
Note that a customer may choose not to order any Product 1 so the textbox may be empty or 0.
However, if he or she does order, the quantity should be a non-negative integer.
Clicking the Previous button should lead to the Customer step.
Clicking the Next button should lead to the Product 2 step ONLY if the checkbox is checked. Otherwise it should lead to the Payment step. However, note that clicking the Product 2 link in the navigation links on the left should lead to the Product 2 step irrespective of the checkbox.
In the Product 2 step:There should be text, a drop down list, a textbox, and buttons as shown.
The drop down list should have two entries “3 lb bag @ $5” (which should be the default selection/preselected) and “5 lb bag @ $8”.
Note that a customer may choose not to order any Product 2 so the textbox may be empty or 0.
However, if he or she does order, the quantity should be a non-negative integer.
Clicking the Previous button should lead to the Product 1 step.
Clicking the Next button should lead to the Payment step.
In the Payment step:There should be text, form elements, and buttons as shown.
To proceed, a customer is required to select a credit card from the list of radio buttons shown.
A credit card number is required. Further, the number must be 16 digits but it cannot start with 0.
The drop down list for month of credit card expiry should consist of a list MM, 1, 2, …12. The customer is required to select a month number.
The drop down list for year of credit card expiry should consist of 2024 (which should be the default selection/preselected), 2025, 2026, and 2027. [Note that the sample screenshot may show a previous year.]
A credit card must have an expiry date more than three months beyond the current date. For instance, if the current date were October 2024, then acceptable cards must have an expiry date BEYOND January 2025. This verification is not necessary on the client-side page. Instead, it should be done server-side when the Finish button is clicked. [Hint: Research the DateSerial and DateAdd methods of the Date object. Assume that cards expire on the 1st of the month.]
A coupon is optional. However, if the customer enters a coupon code, it must be a 3 character code starting with either 1 or 2 only.
Clicking the Previous button should lead to either the Product 1 step or the Product 2 step depending on whether the Product 2 checkbox was previously checked.
Clicking the Finish button should lead to the Receipt step.
In the Receipt step:If neither Product 1 nor Product 2 was ordered, an appropriate message (see sample) should be displayed.
If either or both products were ordered, order details must be displayed as shown in the sample. Note that:the customer’s name is displayed
the quantity of each product (one of them could be 0) is displayed
the sub-total is displayed. This is the total of the quantity of each product multiplied by its price. Note that Product 1 is $10 each while the price of Product 2 depends on the bag size selected and could be either $5 or $8.
the total of shipping and handling charges is displayed. Shipping charges are 10% of the sub-total as calculated above. Handling charges are fixed at $5 irrespective of the size of the order as long as something is ordered.
the discount is displayed. If there is no coupon, this is zero. Otherwise, it is 10% of the sub-total as calculated above (ignoring shipping and handling) if the coupon code starts with a 1. If the coupon code starts with 2, the discount rate is 20%.
the grand total is displayed. This is the sum of the sub-total and shipping and handling less any discount amount.
all monetary amounts are formatted as conventional currency, i.e., with a preceding $ sign and two decimal places.
the customer’s email address is displayed.
a button labeled Email Receipt should be there. However, instead of sending an actual email with the information above, an intentional error should be created on clicking the button. For example, you could multiply the customer name by 5. Such an error can be used to test the other page in this assignment.
Create an HTML page named oops.html with these features:
Any error message you want. (In general, you can create any appropriate error messages for the various validations in this assignment.)
There should be a link titled Start Shopping Again to go to order.aspx.
Configure your site so that this page is displayed whenever any error (not trapped by the validations above) occurs.