//constructor
        public ControllerMain(FormMain view) : base(null, null)
        {
            //connect controller to its view
            this.view = view;
            list_customers = new ArrayList();
            list_networks = new ArrayList();
            list_networkInventories = new ArrayList();
            list_allAvailableLicenses = new ArrayList();
            list_licenseInventories = new ArrayList();
            list_systems = new ArrayList();
            list_systemInventories = new ArrayList();
            list_Audits = new ArrayList();

            //initialising by database
            list_customers = db.GetCustomers();
            list_allAvailableLicenses = db.GetLicenses();
            list_networks = db.GetNetworks();
            list_networkInventories = db.GetNetworkInventories();
            list_licenseInventories = db.GetLicenseInventories();
            list_systems = db.GetClientSystems();
            list_systemInventories = db.GetSystemInventories();
            list_Audits = db.GetAudits();

            //Creating Forms
            fAudit = new FormAudit();
            fChanges = new FormChange();
            fCustomer = new FormCustomer();
            fLicense = new FormLicense();
            fNetwork = new FormNetwork();
            fSystemInventory = new FormSystemInventory();
            fAudit.Visible = false;
            fChanges.Visible = false;
            fCustomer.Visible = false;
            fLicense.Visible = false;
            fNetwork.Visible = false;
            fSystemInventory.Visible = false;

            //Creating Controllers and connect data
            cAudit = new ControllerAudit(this, fAudit, list_customers, list_licenseInventories, list_systemInventories, list_Audits, list_allAvailableLicenses);
            cChanges = new ControllerChanges(this, fChanges, list_customers, list_networks, list_networkInventories, list_licenseInventories, list_allAvailableLicenses, list_systems);
            cCustomer = new ControllerCustomer(this, fCustomer, list_customers);
            cLicense = new ControllerLicense(this, fLicense, list_customers, list_allAvailableLicenses, list_licenseInventories);
            cNetwork = new ControllerNetwork(this, fNetwork, list_customers, list_networks, list_networkInventories);
            cSystemInventory = new ControllerSystemInventory(this, fSystemInventory, list_customers, list_networks,
                                                             list_networkInventories, list_systems, list_systemInventories, list_allAvailableLicenses);

            //Connect Controller to View
            fAudit.Currentcontroller = cAudit;
            fChanges.Currentcontroller = cChanges;
            fCustomer.Currentcontroller = cCustomer;
            fLicense.Currentcontroller = cLicense;
            fNetwork.Currentcontroller = cNetwork;
            fSystemInventory.Currentcontroller = cSystemInventory;

            //Update View with Information initialised by Database
            UpdateView(true);

        }
        //constructor
        public ControllerMain(FormMain view) : base(null, null)
        {
            //connect controller to its view
            this.view                 = view;
            list_customers            = new ArrayList();
            list_networks             = new ArrayList();
            list_networkInventories   = new ArrayList();
            list_allAvailableLicenses = new ArrayList();
            list_licenseInventories   = new ArrayList();
            list_systems              = new ArrayList();
            list_systemInventories    = new ArrayList();
            list_Audits               = new ArrayList();

            //initialising by database
            list_customers            = db.GetCustomers();
            list_allAvailableLicenses = db.GetLicenses();
            list_networks             = db.GetNetworks();
            list_networkInventories   = db.GetNetworkInventories();
            list_licenseInventories   = db.GetLicenseInventories();
            list_systems           = db.GetClientSystems();
            list_systemInventories = db.GetSystemInventories();
            list_Audits            = db.GetAudits();

            //Creating Forms
            fAudit                   = new FormAudit();
            fChanges                 = new FormChange();
            fCustomer                = new FormCustomer();
            fLicense                 = new FormLicense();
            fNetwork                 = new FormNetwork();
            fSystemInventory         = new FormSystemInventory();
            fAudit.Visible           = false;
            fChanges.Visible         = false;
            fCustomer.Visible        = false;
            fLicense.Visible         = false;
            fNetwork.Visible         = false;
            fSystemInventory.Visible = false;

            //Creating Controllers and connect data
            cAudit           = new ControllerAudit(this, fAudit, list_customers, list_licenseInventories, list_systemInventories, list_Audits, list_allAvailableLicenses);
            cChanges         = new ControllerChanges(this, fChanges, list_customers, list_networks, list_networkInventories, list_licenseInventories, list_allAvailableLicenses, list_systems);
            cCustomer        = new ControllerCustomer(this, fCustomer, list_customers);
            cLicense         = new ControllerLicense(this, fLicense, list_customers, list_allAvailableLicenses, list_licenseInventories);
            cNetwork         = new ControllerNetwork(this, fNetwork, list_customers, list_networks, list_networkInventories);
            cSystemInventory = new ControllerSystemInventory(this, fSystemInventory, list_customers, list_networks,
                                                             list_networkInventories, list_systems, list_systemInventories, list_allAvailableLicenses);

            //Connect Controller to View
            fAudit.Currentcontroller           = cAudit;
            fChanges.Currentcontroller         = cChanges;
            fCustomer.Currentcontroller        = cCustomer;
            fLicense.Currentcontroller         = cLicense;
            fNetwork.Currentcontroller         = cNetwork;
            fSystemInventory.Currentcontroller = cSystemInventory;

            //Update View with Information initialised by Database
            UpdateView(true);
        }