//Add Groupbox Add button clicked
        private void addMasterListAddButton_Click(object sender, EventArgs e)
        {
            //Add Entry button pressed, gather info and add entry
            if(addMasterListNameTextbox.Text.Length > 0)
            {
                AddToDatabase database = new AddToDatabase();
                sendValues = new MasterListValues(addMasterListNameTextbox.Text, commonMethod.GetCameraNumber(cameraAddMasterCombo.Text));

                if (database.AddMasterList(sendValues))
                {
                    //Add entry success
                    updateStatus.UpdateStatusBar("New Master Tape added to database", mainform);
                    addMasterListNameTextbox.Clear();
                    cameraAddMasterCombo.SelectedIndex = 0;
                    MakeGroupboxesInvisible();
                    PopulateMasterList();
                }
                else
                {
                    //Add Entry failure
                    updateStatus.UpdateStatusBar("Entry was not added to database", mainform);
                }
            }
        }
        //Delete button pressed
        private void masterListDeleteButton_Click(object sender, EventArgs e)
        {
            if(masterListListBox.SelectedItems.Count == 1)
            {
                //Make every other groupbox invisible
                MakeGroupboxesInvisible("delete");

                //Label Name and Camera of item selected
                LabelSelectedItem(deleteMasterNameMasterListLabel, deleteCameraNameMasterListLabel);

                //Make delete groupbox visible
                deleteMasterListGroupBox.Visible = true;
            }else if(masterListListBox.SelectedItems.Count > 1)
            {
                //multiple items selected in listview

                //Show message box to make sure user is to be deleted
                DialogResult deleteMessage = MessageBox.Show("Do you want to delete these " + masterListListBox.SelectedItems.Count + " entries?", "Deletion Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

                //Check to see if user pressed yes or no
                if (deleteMessage == DialogResult.Yes)
                {

                    //clear delete list
                    if (masterListValues == null)
                    {
                        masterListValues = new List<MasterListValues>();
                    }
                    else
                    {
                        masterListValues.Clear();
                    }

                    //iterate over each item selected and save data in a value, then a list
                    foreach (var item in masterListListBox.SelectedItems)
                    {
                        MasterListValues value = new MasterListValues(item.ToString(), GetCameraName(item.ToString()));

                        masterListValues.Add(value);
                    }

                    if (masterListListBox.SelectedItems.Count > 1 && masterListValues.Count > 0)
                    {
                        Debug.WriteLine("sending " + masterListValues.Count + " people to delete");
                        updateStatus.UpdateStatusBar(AddToDatabase.DeleteMultipleMasterListselected(masterListValues) + " lists deleted", mainform);
                    }

                    PopulateMasterList();
                    MakeGroupboxesInvisible("default");
                    masterListDeleteButton.Enabled = false;
                    masterListDeleteButton.Text = "Delete";

                }
                else if (deleteMessage == DialogResult.No)
                {
                    //No Pressed, nothing will be done
                }
            }
        }
        /// <summary>
        /// Get name and camera for selected item and make label to reflect that
        /// </summary>
        /// <param name="nameLabel"></param>
        /// <param name="cameraLabel"></param>
        private void LabelSelectedItem(Label nameLabel, Label cameraLabel)
        {
            //check to make sure masterList is not empty
            if (masterList != null)
            {
                //Iterate through master list
                foreach (MasterListValues item in masterList)
                {
                    //If name in master list matches item selected, then get name and camera info
                    if (masterListListBox.GetItemText(masterListListBox.SelectedItem).Equals(item.MasterArchive))
                    {

                        sendValues = item;
                        nameLabel.Text = item.MasterArchive;
                        cameraLabel.Text = commonMethod.GetCameraName(Convert.ToInt32(item.MasterMedia));
                    }
                }
            }
            else
            {
                //Update Application Status
                updateStatus.UpdateStatusBar("There was a problem", mainform);
            }
        }
        //Edit Groupbox edit button pressed
        private void editMasterEditButton_Click(object sender, EventArgs e)
        {
            //Edit Entry button pressed, gather info and update entry
            //check to make sure something is entered in the textbox
            if(editNewNameMasterTextbox.Text.Length > 0)
            {
                AddToDatabase database = new AddToDatabase();

                //Create MasterListValues of old info
                MasterListValues oldValues = new MasterListValues(sendValues.MasterArchive, sendValues.MasterMedia, sendValues.ID);

                //Create MasterListValues of old info
                MasterListValues newValues = new MasterListValues(editNewNameMasterTextbox.Text, commonMethod.GetCameraNumber(editCameraNewMasterDropdown.GetItemText(editCameraNewMasterDropdown.SelectedItem)));

                //Send to update method in AddToDatabase class & check if successful
                if(database.UpdateMasterList(oldValues, newValues))
                {
                    //update successful
                    updateStatus.UpdateStatusBar("Update of Master Tape successful", mainform);

                    //Clear items and close groupbox
                    editNewNameMasterTextbox.Clear();
                    editCameraNewMasterDropdown.SelectedIndex = 0;
                    MakeGroupboxesInvisible();
                    //Load new database info into listbox
                    PopulateMasterList();
                }else
                {
                    //update failed
                    updateStatus.UpdateStatusBar("Update Error", mainform);
                }

            }
        }
        //Delete Groupbox Delete button clicked
        private void deleteMasterListDeleteButton_Click(object sender, EventArgs e)
        {
            //Delete button pressed, gather info and delete entry
            //Show message box to make sure user is to be deleted
            DialogResult deleteMessage = MessageBox.Show("Do you want to delete " + deleteMasterNameMasterListLabel.Text + "?", "Deletion Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            //Check to see if user pressed yes or no
            if (deleteMessage == DialogResult.Yes)
            {
                //Yes Pressed, delete user from DB
                Debug.WriteLine("Yes Pressed for deletion");

                AddToDatabase deleteDB = new AddToDatabase();

                int _id = 0;

                foreach(MasterListValues item in masterList)
                {
                    if (item.MasterArchive.Equals(deleteMasterNameMasterListLabel.Text))
                    {
                        _id = item.ID;
                    }
                }

                MasterListValues values = new MasterListValues(deleteMasterNameMasterListLabel.Text, commonMethod.GetCameraDropdownIndex(deleteCameraNameMasterListLabel.Text),_id);

                //Delete user from database
                if (deleteDB.DeleteMasterList(values))
                {
                    //deletion success
                    updateStatus.UpdateStatusBar(deleteMasterNameMasterListLabel.Text + " deleted!", mainform);
                    MakeGroupboxesInvisible("delete");
                    PopulateMasterList();
                }
                else
                {
                    updateStatus.UpdateStatusBar("There was an error deleting " + deleteMasterNameMasterListLabel.Text, mainform);
                    MakeGroupboxesInvisible("delete");
                }
            }
            else if (deleteMessage == DialogResult.No)
            {
                //No Pressed, nothing will be done
            }
        }
        /// <summary>
        /// Gets all tables from imported database and inserts the information into the default database
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="mainForm">The main form.</param>
        public static void GetTableName(string file, TNG_Database.MainForm mainForm)
        {
            List<string> allTables = new List<string>();

            Debug.WriteLine("Starting to import");

            //new database filename
            string fileDatabase = "Data Source=" + file + ";Version=3;";

            Debug.WriteLine(fileDatabase);

            //progressbar status for each table
            int everyTable = 0;
            int progress = 0;

            try
            {
                //command to get all tables in database
                const string GET_TABLES_QUERY = "select name from sqlite_master where type='table'";

                SQLiteConnection connection = new SQLiteConnection(fileDatabase);
                connection.Open();

                SQLiteCommand command = new SQLiteCommand(GET_TABLES_QUERY, connection);

                using (SQLiteDataReader reader = command.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        Debug.WriteLine("import has tables");
                        while (reader.Read())
                        {
                            if (TNGTables.Contains(reader.GetString(0)))
                            {
                                allTables.Add(reader.GetString(0));
                            }
                        }
                    }
                }

                //close connection
                connection.Close();
            }catch(SQLiteException e)
            {
                MainForm.LogFile("SQLite Error: " + e.Message);
                Debug.WriteLine("SQLite Error: " + e.Message);
            }

            try
            {
                //check to see if there are any tables returned
                if (!allTables.Count.Equals(0))
                {
                    //set progressbar status to division on count of tables
                    everyTable = 100 / allTables.Count;
                    Debug.WriteLine("Table Number #: " + everyTable);

                    AddToDatabase addDB = new AddToDatabase();

                    foreach (string table in allTables)
                    {
                        //connection for new database
                        SQLiteConnection connect = new SQLiteConnection(fileDatabase);
                        connect.Open();

                        SQLiteCommand command = new SQLiteCommand(connect);
                        command.CommandText = "Select * from " + table;

                        switch (table)
                        {
                            case "TapeDatabase":
                            case "DeleteTapeDatabase":
                                //create values object
                                List<TapeDatabaseValues> tapeList = new List<TapeDatabaseValues>();
                                TapeDatabaseValues tapeValues = new TapeDatabaseValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            tapeValues.Clear();
                                            tapeValues.ProjectId = reader["project_id"].ToString();
                                            tapeValues.ProjectName = reader["project_name"].ToString();
                                            tapeValues.TapeName = reader["tape_name"].ToString();
                                            tapeValues.TapeNumber = reader["tape_number"].ToString();
                                            tapeValues.Camera = Convert.ToInt32(reader["camera"]);
                                            tapeValues.TapeTags = reader["tape_tags"].ToString();
                                            tapeValues.DateShot = reader["date_shot"].ToString();
                                            tapeValues.MasterArchive = reader["master_archive"].ToString();
                                            tapeValues.PersonEntered = reader["person_entered"].ToString();

                                            //add values to list
                                            tapeList.Add(tapeValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (TapeDatabaseValues values in tapeList)
                                {
                                    if (table == "TapeDatabase")
                                    {
                                        //add value to database
                                        addDB.AddTapeDatabase(values);
                                    }
                                    else if(table == "DeleteTapeDatabase")
                                    {
                                        //Open up new connection
                                        SQLiteConnection deleteConnect = new SQLiteConnection(database);
                                        deleteConnect.Open();
                                        command.Connection = deleteConnect;

                                        command.CommandText = "select count(*) from DeleteTapeDatabase where lower(project_name) = @projectName and project_id = @projectID";
                                        command.Parameters.Clear();
                                        command.Parameters.AddWithValue("@projectID", values.ProjectId);
                                        command.Parameters.AddWithValue("@projectName", values.ProjectName.ToLower());
                                        Int32 check = Convert.ToInt32(command.ExecuteScalar());

                                        //Make sure that entry doesn't exist already
                                        if (check < 1)
                                        {
                                            //add value to deleted database
                                            //There is not an entry go ahead and insert new row
                                            command.CommandText = "insert into DeleteTapeDatabase (tape_name, tape_number, project_id, project_name, camera, tape_tags, date_shot, master_archive, person_entered) values (@tapeName, @tapeNumber, @projectID, @projectName, @camera, @tapeTags, @dateShot, @masterArchive, @personEntered)";
                                            command.Parameters.Clear();
                                            command.Parameters.AddWithValue("@tapeName", values.TapeName);
                                            command.Parameters.AddWithValue("@tapeNumber", values.TapeNumber);
                                            command.Parameters.AddWithValue("@projectID", values.ProjectId);
                                            command.Parameters.AddWithValue("@projectName", values.ProjectName);
                                            command.Parameters.AddWithValue("@camera", values.Camera);
                                            command.Parameters.AddWithValue("@tapeTags", values.TapeTags);
                                            command.Parameters.AddWithValue("@dateShot", values.DateShot);
                                            command.Parameters.AddWithValue("@masterArchive", values.MasterArchive);
                                            command.Parameters.AddWithValue("@personEntered", values.PersonEntered);

                                            command.ExecuteNonQuery();
                                        }

                                        deleteConnect.Close();
                                    }
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                            case "Projects":
                            case "DeleteProjects":
                                //create values object
                                List<ProjectValues> projectList = new List<ProjectValues>();
                                ProjectValues projectValues = new ProjectValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {

                                        while (reader.Read())
                                        {
                                            projectValues.Clear();
                                            projectValues.ProjectID = reader["project_id"].ToString();
                                            projectValues.Projectname = reader["project_name"].ToString();

                                            //add values to list
                                            projectList.Add(projectValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (ProjectValues values in projectList)
                                {
                                    if (table == "Projects")
                                    {
                                        //add value to database
                                        addDB.AddProjects(values);
                                    }
                                    else if (table == "DeleteProjects")
                                    {
                                        //Open up new connection
                                        SQLiteConnection deleteConnect = new SQLiteConnection(database);
                                        deleteConnect.Open();
                                        command.Connection = deleteConnect;

                                        command.CommandText = "select count(*) from DeleteProjects where lower(project_name) = @projectName and project_id = @projectID";
                                        command.Parameters.Clear();
                                        command.Parameters.AddWithValue("@projectID", values.ProjectID);
                                        command.Parameters.AddWithValue("@projectName", values.Projectname.ToLower());
                                        Int32 check = Convert.ToInt32(command.ExecuteScalar());

                                        //Make sure that entry doesn't exist already
                                        if (check < 1)
                                        {
                                            //add value to deleted database
                                            //There is not an entry go ahead and insert new row
                                            command.CommandText = "insert into DeleteProjects (project_id, project_name) values (@projectID, @projectName)";
                                            command.Parameters.Clear();
                                            command.Parameters.AddWithValue("@projectID", values.ProjectID);
                                            command.Parameters.AddWithValue("@projectName", values.Projectname);

                                            command.ExecuteNonQuery();
                                        }

                                        deleteConnect.Close();
                                    }
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                            case "People":
                            case "DeletePeople":
                                //create values object
                                List<PeopleValues> peopleList = new List<PeopleValues>();
                                PeopleValues peopleValues = new PeopleValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            peopleValues.Clear();
                                            peopleValues.PersonName = reader["person_name"].ToString();

                                            //add values to list
                                            peopleList.Add(peopleValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (PeopleValues values in peopleList)
                                {
                                    if (table == "People")
                                    {
                                        //add value to database
                                        addDB.AddPerson(values);
                                    }
                                    else if (table == "DeletePeople")
                                    {
                                        //Open up new connection
                                        SQLiteConnection deleteConnect = new SQLiteConnection(database);
                                        deleteConnect.Open();
                                        command.Connection = deleteConnect;

                                        command.CommandText = "select count(*) from DeletePeople where lower(person_name) = @personName";
                                        command.Parameters.Clear();
                                        command.Parameters.AddWithValue("@personName", values.PersonName.ToLower());
                                        Int32 check = Convert.ToInt32(command.ExecuteScalar());

                                        //Make sure that entry doesn't exist already
                                        if (check < 1)
                                        {
                                            //add value to deleted database
                                            //There is not an entry go ahead and insert new row
                                            command.CommandText = "insert into DeletePeole (person_name) values (@personName)";
                                            command.Parameters.Clear();
                                            command.Parameters.AddWithValue("@personName", values.PersonName);

                                            command.ExecuteNonQuery();
                                        }

                                        deleteConnect.Close();
                                    }
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                            case "MasterList":
                            case "DeleteMasterList":
                                //create values object
                                List<MasterListValues> masterTapeList = new List<MasterListValues>();
                                MasterListValues masterTapeValues = new MasterListValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            masterTapeValues.Clear();
                                            masterTapeValues.MasterArchive = reader["master_archive"].ToString();
                                            masterTapeValues.MasterMedia = Convert.ToInt32(reader["master_media"]);

                                            //add values to list
                                            masterTapeList.Add(masterTapeValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (MasterListValues values in masterTapeList)
                                {
                                    if (table == "MasterList")
                                    {
                                        //add value to database
                                        addDB.AddMasterList(values);
                                    }
                                    else if (table == "DeleteMasterList")
                                    {
                                        //Open up new connection
                                        SQLiteConnection deleteConnect = new SQLiteConnection(database);
                                        deleteConnect.Open();
                                        command.Connection = deleteConnect;

                                        command.CommandText = "select count(*) from DeleteMasterList where lower(master_archive) = @masterArchive and master_media = @masterMedia";
                                        command.Parameters.Clear();
                                        command.Parameters.AddWithValue("@masterArchive", values.MasterArchive.ToLower());
                                        command.Parameters.AddWithValue("@masterMedia", values.MasterMedia);
                                        Int32 check = Convert.ToInt32(command.ExecuteScalar());

                                        //Make sure that entry doesn't exist already
                                        if (check < 1)
                                        {
                                            //add value to deleted database
                                            //There is not an entry go ahead and insert new row
                                            command.CommandText = "insert into DeleteMasterList (master_archive, master_media) values (@masterArchive, @masterMedia)";
                                            command.Parameters.Clear();
                                            command.Parameters.AddWithValue("@masterArchive", values.MasterArchive);
                                            command.Parameters.AddWithValue("@masterMedia", values.MasterMedia);

                                            command.ExecuteNonQuery();
                                        }

                                        deleteConnect.Close();
                                    }
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                            case "MasterArchiveVideos":
                            case "DeleteMasterArchiveVideos":
                                //create values object
                                List<MasterArchiveVideoValues> masterArchiveVideoList = new List<MasterArchiveVideoValues>();
                                MasterArchiveVideoValues MasterArchiveVideoValues = new MasterArchiveVideoValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            MasterArchiveVideoValues.Clear();
                                            MasterArchiveVideoValues.ProjectId = reader["project_id"].ToString();
                                            MasterArchiveVideoValues.VideoName = reader["video_name"].ToString();
                                            MasterArchiveVideoValues.MasterTape = reader["master_tape"].ToString();
                                            MasterArchiveVideoValues.ClipNumber = reader["clip_number"].ToString();

                                            //add values to list
                                            masterArchiveVideoList.Add(MasterArchiveVideoValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (MasterArchiveVideoValues values in masterArchiveVideoList)
                                {
                                    if (table == "MasterArchiveVideos")
                                    {
                                        //add value to database
                                        addDB.AddMasterArchiveVideo(values);
                                    }
                                    else if (table == "DeleteMasterArchiveVideos")
                                    {
                                        //Open up new connection
                                        SQLiteConnection deleteConnect = new SQLiteConnection(database);
                                        deleteConnect.Open();
                                        command.Connection = deleteConnect;

                                        command.CommandText = "select count(*) from DeleteMasterArchiveVideos where project_id = @projectID and video_name = @videoName and clip_number = @clipNumber and master_tape = @masterTape";
                                        command.Parameters.Clear();
                                        command.Parameters.AddWithValue("@projectID", values.ProjectId);
                                        command.Parameters.AddWithValue("@videoName", values.VideoName);
                                        command.Parameters.AddWithValue("@masterTape", values.MasterTape);
                                        command.Parameters.AddWithValue("@clipNumber", values.ClipNumber);
                                        Int32 check = Convert.ToInt32(command.ExecuteScalar());

                                        //Make sure that entry doesn't exist already
                                        if (check < 1)
                                        {
                                            //add value to deleted database
                                            //There is not an entry go ahead and insert new row
                                            command.CommandText = "insert into DeleteMasterArchiveVideos (project_id, video_name, master_tape, clip_number) values (@projectID, @videoName, @masterTape, @clipNumber)";
                                            command.Parameters.Clear();
                                            command.Parameters.AddWithValue("@projectID", values.ProjectId);
                                            command.Parameters.AddWithValue("@videoName", values.VideoName);
                                            command.Parameters.AddWithValue("@masterTape", values.MasterTape);
                                            command.Parameters.AddWithValue("@clipNumber", values.ClipNumber);

                                            command.ExecuteNonQuery();
                                        }

                                        deleteConnect.Close();
                                    }
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                            case "ComputerInfo":
                                //create values object
                                List<ComputerInfoValues> computerInfoList = new List<ComputerInfoValues>();
                                ComputerInfoValues computerInfoValues = new ComputerInfoValues();

                                //execute query
                                using (SQLiteDataReader reader = command.ExecuteReader())
                                {
                                    if (reader.HasRows)
                                    {
                                        while (reader.Read())
                                        {
                                            computerInfoValues.Clear();
                                            computerInfoValues.UniqueHash = reader["computer_hash"].ToString();
                                            computerInfoValues.ComputerName = reader["computer_name"].ToString();
                                            computerInfoValues.ComputerUser = reader["computer_user"].ToString();

                                            //add values to list
                                            computerInfoList.Add(computerInfoValues);
                                        }
                                    }
                                }

                                //Close import connection
                                connect.Close();

                                //iterate over values to add to database
                                foreach (ComputerInfoValues values in computerInfoList)
                                {
                                    //add value to database
                                    addDB.AddComputerInfo(values);
                                }

                                UpdateProgess(everyTable, mainForm);
                                progress += everyTable;

                                break;
                        }
                    }
                }
            }catch(SQLiteException e)
            {
                MainForm.LogFile("SQLite Error: " + e.Message);
                Debug.WriteLine("SQLite Table Error: " + e.Message);

            }

            if((100 - progress) > 0)
            {
                UpdateProgess((100-progress), mainForm);
            }
        }