//constructor
 public ControllerNetwork(ControllerParent calling, FormNetwork view, ArrayList list_customers, ArrayList list_networks, ArrayList list_networkinventories) : base(calling, list_customers)
 {
     //connect controller to its view
     this.view                    = view;
     this.list_networks           = list_networks;
     this.list_networkinventories = list_networkinventories;
 }
        //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);
        }