Create a WPF app, name it as MT_W2021_StudentNumber using C# and .Net

Design and implement an WPF windows app that displays and manages information of High-Speed Internet Service by a local Internet Service Provide i.e. Bell, Rogers, Wind, Fido, Telus etc, you create your own brand (Your own color theme).

Use collections to store your data, you must use a custom class for each Service offered, I Gbps, 150Mbps and 500Mbps.

Use LINQ to query (read or fetch data), insert, update and delete your collections.

The app should come preloaded with 3 pieces of data for each collection.

Provide a Login Screen user name and password.

Upon successful login, load the main window with Groupbox showing three radio buttons (1Gbps, 150Mbps and 500Mbps) and Other input controls - see image Fig 1 (Images are not exact WPF presentation).

Each Internet package in ComboBox populates textfields for input.

On selecting a name from the ComboBox, display the data in the blue shaded textboes.

Add buttons to create, update, delete data for that particular package.

  • Show Message box with an error for incorrect login & input.

Note:

  • Windows should not be default grey colour as shown Fig 2, change to your choice (using Style themes)
  • Use whatever layout panels you want: Grid, StackPanel, or any other layout.
  • Use your own creativity to layout the controls (Avoid Academic Integrity issues) and design a great app!
  • You must have a message box asking the user to confirm quitting the application. Also use message box for user deleting, or updating the data for all collections.
  • Format all the message boxes with appropiate message, caption, buttons and Image icons.

Write code for the wpfRoger app as follows:

  • When user clicks on the 'Create' button, save the input from textbox fields into collection, and use List< T> for each radio button options (Need classes using polymorphism for Gigabit, 150u, and 500u from your base class).
  • Text fields are for Monthly Usage which will be 'Unlimited' for all packages, Download Speed i.e. '1 Gbps', Service will be decimal i.e. $104.99/mo, Modem Rental will be i.e. $10/mo and Installation will be $49.99 for 150Mbps and 500Mbps, but $0 for 1Gbps packages See Fig 1
  • After clicking 'Create' button, add the package Name, to the combo-box. Items selected from the combo-box shall ONLY display the package Name and no other information. Note package names must be unique (Hint validate before inserting). Display in the readonly text-boxes Monthly Usage, Download Speed. Note that the Monthly Total must be calculate by Adding Monthly Rental and Service in class files.
  • When user clicks 'Update' button - update collection List< T>
  • Clear all textfields when 'Clear' button is clicked. The only exception is the combo-box for Internet Packages.

Exception Handling:

  • There should be no unhandled exceptions of any kind at run-time.
  • Display all errors resulting from the input validation using MessageBoxes. Validate the input as follows:
    • All fields are required (radio buttons, labels, etc).
    • The name of the Internet packages should be unique.
    • The download speed has to match selected option button text value for Mbps.
    • The Modem Rental, Installation, and Service fields have to be a positive decimal number.
  • The error messages should be clear and understandable.

Classes:

  • Something like, "Name field cannot be left blank".
  • You already have class for connecting to a database (Previous Project), use this for your project
  • Create an abstract class InternetPackage.
    • This class stores package name and package type. Derive required classes using polymorphism. For each radio button selection.
    • An abstract readonly property. This property is implemented in each derived class to determine the modem rental of each type of package.
    • Property for Installation which calculate the fee $49.99 for 150Mbps and 500Mbps, but $0 for 1Gbps packages
    • Add properties as required from text fields - you decide.

Figure 1 WPF - wpfRoger layout, Selection for Unlimited package: see image.

Figure 2 WPF - wpfRoger layout: see image.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.