Look at the assingment below , I have already began doing it but I feel like I am missing some some things or maybe even made mistakes. Analyse the scenario, aim and tasks and look if my solution is missing some requirements or has errors. Also note that I used Microsoft access to createa  database with customers and appliances called db_users which contains a table with customers and table with “TABLE info”. Please help me out with the customer dashboard ( I connected the dataview grid and the appliances show up when the program is ran I need help in implementing the functionality in contrast with the dataviewgrid for instance a search function an add to cart function that calculates total from the appliances and gives total to be paid) things like that

Scenario
 You are contracted to develop a home appliance rental application for a local startup company. The renting business company provides affordable rental services for people looking to hire home electrical appliances from small to large for a minimum period of time starting from ONE (1) month. Examples of types of appliances are TV, fridge, freezer, washing machine, dryer, dishwasher, microwave, etc.

The application should have TWO (2) types of users which are administrator and customer. An administrator can view, add, edit, and delete an item. A customer can create an account with a username and password. The usernames can only contain letters and numbers. The password must be of length between EIGHT (8) and SIXTEEN (16) characters, and contain at least ONE (1) lowercase and ONE (1) uppercase letter. A customer can search, view, and order an item after they successfully log in the application.

Your program should include the following requirements. Functional Requirements:
 ● Customers can register.
 ● Customers can search appliances by type and view sorted appliances by energy consumption (see the table below for some common appliances, or research for your chosen appliances) or weekly cost. They can also add appliance items to a shopping cart. 
● Calculation of the total price.
 ● Administrators can add, edit and delete appliance items. 
● Log in page for customers and administrators. Appropriately handle the situation when a reasonable number of failed login attempts occur.

“TABLE info”: 
Appliance	Power Usage	Typical Usage	Estimated annual running costs
LCD TV	0.21kWh per hour	6 hours a day (power on)	£130
Fridge Freezer (A spec)	408kWh per year	24 hours a day	£115
Tumble Dryer	2.50kWh per cycle	148 uses a year	£105
Electric hob	0.71kWh per use	424 uses a year	£85
Electric oven	1.56kWh per use	135 uses per year	£60
Dishwasher	1.44kWh per use (at 65⁰C)	135 uses per year	£55
Kettle	0.11kWh per use based on heating 1 litre of water		1,542 uses per year	£48



Non-functional Requirements:
● Provide FIVE (5) types of appliances of your choice. 
● Each type has TEN (10) appliances. 
● Each appliance is rented for a monthly fee. 
● Each appliance should have an appropriate description, such as brand, model, dimensions, colour, energy consumption, monthly fee etc. 
● All FIVE (5) types of appliances should have different minimum rental contract periods starting from ONE (1) month.
 ● The application users are customers and administrators. 
● Provide appropriate errors and help messages, and guidance for customer

TASK
a) You need to write code (written in C#) which fulfils all the requirements as outlined above. 
b) The quality of your program will be assessed in terms of program structure, OOP principles in-cluding encapsulation, algorithms using appropriate control structures (loops and selections), and readability including appropriate comments



-----------------------------------------------------------------------------------------------------------------------------------
Form1.cs(login page):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.Remoting.Lifetime;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;

namespace ApplianceRental
{
    public partial class Form1 : Form
    {
        

        public Form1()
        {
            InitializeComponent();
            OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
            OleDbCommand cmd = new OleDbCommand();
            OleDbDataAdapter da = new OleDbDataAdapter();
            
        }
        //connects to database
        OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
        OleDbCommand cmd = new OleDbCommand();
        OleDbDataAdapter da = new OleDbDataAdapter();
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
        // Add a counter variable or class level property
        private int failedAttempts = 0;
        private void button1_Click(object sender, EventArgs e)
        {
           
            string username = textBox1.Text;
            string password = textBox2.Text;

            // Max login attempts
            if (failedAttempts >= 3)
            {
                MessageBox.Show("Maximum login attempts reached.Contact the admin");
                this.Close();
            }

            // Checks if user is admin if not then automatically user is assumed to be customer hence database of customer is checked
            if (username == "Admin123" && password == "stcmalta")
            {
                // Open the Admin Dashboard form
                AdminDashboardForm adminDashboardForm = new AdminDashboard-Form();
                adminDashboardForm.Show();
                this.Hide();
            }
            else
            {
                con.Open();
                string login = "SELECT * FROM tbl_users WHERE username = '" + textBox1.Text + "' and password= '" + textBox2.Text + "'";
                cmd = new OleDbCommand(login, con);
                OleDbDataReader dr = cmd.ExecuteReader();
                if (dr.Read() == true)
                {
                    new CustomerDashboardForm().Show();
                    this.Hide();
                }
                
                else
                {
                  
                    MessageBox.Show("Invalid username or password! Please try again.");
                    failedAttempts++;
                }
                con.Close();
            }
        }





            private void button2_Click(object sender, EventArgs e)
            {
            new RegistrationForm().Show();
                this.Hide();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            //snippet to unhide password if ticked
            if (checkBox1.Checked)
            {
                textBox2.PasswordChar = '\0';
            }
            else
            {
                textBox2.PasswordChar = '*';
            }
        }
    }
}
RegistrationForm.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
using static Sys-tem.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using System.Xml.Linq;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace ApplianceRental
{
    public partial class RegistrationForm : Form
    {
        

        public RegistrationForm() // Add Form1 loginForm as a parameter
        {
            InitializeComponent();


        }
        OleDbConnection con = new OleDbConnec-tion("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_users.mdb");
        OleDbCommand cmd = new OleDbCommand();
        OleDbDataAdapter da = new OleDbDataAdapter();
        private void Register_Click(object sender, EventArgs e)
        {
            // Validate input fields
           

            if (string.IsNullOrEmpty(textBox2.Text))
            {
                MessageBox.Show("Please enter a password.");
                return;
            }

            if (textBox2.Text != textBox3.Text)
            {
                MessageBox.Show("Passwords do not match.");
                return;
            }

            if (string.IsNullOrEmpty(textBox4.Text))
            {
                MessageBox.Show("Please enter your full name.");
                return;
            }

            if (string.IsNullOrEmpty(textBox5.Text))
            {
                MessageBox.Show("Please enter your email address.");
                return;
            }

            if (string.IsNullOrEmpty(textBox6.Text))
            {
                MessageBox.Show("Please enter your address.");
                return;
            }
           

     
            
             if (textBox2.Text.Length < 8 &&  textBox2.Text.Length > 16)
                {
                MessageBox.Show("Password must be between 8 and 16 charac-ters.");
                return;
            }
                else if (!textBox2.Text.Any(char.IsLower) || !text-Box2.Text.Any(char.IsUpper))
            {
                MessageBox.Show("Password must contain at least one lower-case and one uppercase letter.");
                return;
            }

            con.Open();
            string register = "INSERT INTO tbl_users VALUES ('" + text-Box1.Text + "','" + textBox2.Text + "', '" + textBox4.Text + "', '" + text-Box5.Text + "', '" + textBox6.Text + "')";
            cmd = new OleDbCommand(register, con);
            cmd.ExecuteNonQuery();
            con.Close();
            // Successful registration, do something here
            MessageBox.Show("Registration successful!");

            //emptying the fields
            textBox1.Text = "";
            textBox2.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox3.Text = "";
            
            this.Hide();
            new Form1().Show();






        }

    }
}
CustomerDashboardForm.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ApplianceRental
{
    public partial class CustomerDashboardForm : Form
    {

        public CustomerDashboardForm()
        {
            InitializeComponent();
        }

        private void CustomerDashboardForm_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'db_usersDataSet.ApplianceDBLIST' table. You can move, or remove it, as needed.
            this.applianceDBLISTTableAdapter.Fill(this.db_usersDataSet.ApplianceDBLIST);

        }

        private void dataGridView1_CellContentClick(object sender, Data-GridViewCellEventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, Even-tArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}
AdminDashboardForm:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ApplianceRental
{
    public partial class AdminDashboardForm : Form
    {
        public AdminDashboardForm()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellContentClick(object sender, Data-GridViewCellEventArgs e)
        {

        }

        private void Add_Click(object sender, EventArgs e)
        {

        }

        private void Edit_Click(object sender, EventArgs e)
        {

        }

        private void Delete_Click(object sender, EventArgs e)
        {

        }

        private void AdminDashboardForm_Load(object sender, EventArgs e)
        {

        }
    }
}