private void finalLoginButton_Click(object sender, EventArgs e)
        {
            string user = "";

            user = userTextBox.Text.ToLower();

            try
            {
                Viewer v = viewerRepo.RetrieveViewerOnEmail(user);
                //string[] username = user.Split('@');
                mainForm.theUser = new currentUser(user);
                mainForm.changeLabel(mainForm.theUser.userName);
                mainForm.Controls.Remove(mainForm.loginButton);
            }
            catch
            {
                MessageBox.Show("Email not in database try again.");
            }

            //bring in table and check if there's an account matching these

            //create new user object to have as a variable?


            this.Close();
        }
        private void createUserButton_Click(object sender, EventArgs e)
        {
            string user   = textBox1.Text.ToLower();
            string name   = textBox2.Text;
            string gender = "Male";

            if (checkBox2.Checked)
            {
                gender = "Female";
            }
            string asString = dateTimePicker1.Value.ToString("yyyy/MM/dd");

            try
            {
                Viewer v = viewerRepo.RetrieveViewerOnEmail(user);
                MessageBox.Show("Email is already in the database");
            }
            catch
            {
                mainForm.theUser = new currentUser(user);
                mainForm.changeLabel(mainForm.theUser.userName);

                string[] username = user.Split('@');

                viewerRepo.CreateViewer(gender, user, asString, username[0], name);
                MessageBox.Show("new user created!");
                currentUser newUser = new currentUser(user);
                this.Close();
            }
        }
        private void buyButton_Click(object sender, EventArgs e)
        {
            if (theUser != null)
            {
                if (showtimeListBox.SelectedItem != null)
                {
                    if (movieListbox.SelectedItem != null)
                    {
                        string   movie = movieListbox.SelectedItem.ToString();
                        string   full  = showtimeListBox.SelectedItem.ToString();
                        string[] array = full.Split(' ');
                        string   time  = array[0];
                        string   date  = array[14];
                        string   price = array[27];

                        IReadOnlyList <Movie>    m = movieRepo.RetrieveMovie(movie);
                        IReadOnlyList <ShowTime> s = showtimeRepo.RetrieveMovieShowTime(m[0].MovieId);

                        ShowTime current = null;
                        foreach (ShowTime show in s)
                        {
                            if (show.Date == date && show.Time == time)
                            {
                                current = show;
                                break;
                            }
                        }

                        Viewer v = viewerRepo.RetrieveViewerOnEmail(theUser.userName);

                        Ticket newTicket = ticketRepo.CreateTicket(v.ViewerId, current.ShowTimeId);

                        string ticketMessage = "Ticket for " + movie + " purchased!\n Thank you for your order!";

                        MessageBox.Show(ticketMessage);
                    }
                    else
                    {
                        MessageBox.Show("No movie selected");
                    }
                }
                else
                {
                    MessageBox.Show("No Time selected");
                }
            }
            else
            {
                MessageBox.Show("You need to be signed in to purchase a ticket.");
            }
        }
        private void postReviewButton_Click(object sender, EventArgs e)
        {
            if (richTextBox1.Text != "" && textBox1.Text != "")
            {
                //Must be able to insert new user first
                Viewer v     = viewerRepo.RetrieveViewerOnEmail(cu.userName);
                int    index = review.getMovieId();
                try
                {
                    decimal rating = decimal.Parse(textBox1.Text);

                    int low  = decimal.Compare(rating, (decimal)1.0);
                    int high = decimal.Compare(rating, (decimal)5.0);

                    string theReview = richTextBox1.Text;
                    if (low != -1 && high != 1)
                    {
                        reviewRepo.CreateReview(v.ViewerId, index, rating, theReview);
                        DialogResult d = MessageBox.Show("review written!");
                        if (d == DialogResult.OK || d == DialogResult.Cancel)
                        {
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Must be inbetween 1.0 and 5.0");
                    }
                }
                catch
                {
                    MessageBox.Show("Must enter decimal number into rating");
                }
            }
            else
            {
                MessageBox.Show("Must write review and rating for the movie");
            }
        }