private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                Customer customer = new Customer();
                {
                    customer.FirstName    = FirstNameBox.Text;
                    customer.LastName     = LastNameBox.Text;
                    customer.Address      = AddressBox.Text;
                    customer.City         = CityBox.Text;
                    customer.Province     = ProvinceBox.Text;
                    customer.PostalCode   = PostalCodeBox.Text;
                    customer.Phone        = PhoneNumberBox.Text;
                    customer.Email        = EmailBox.Text;
                    customer.CreditCard   = CreditCardBox.Text;
                    customer.Username     = UsernameBox.Text;
                    customer.Password     = PasswordBox.Password;
                    customer.Rating       = 0;
                    customer.CreationDate = DateTime.Today;

                    int value = int.Parse(AccountTypeBox.Text);
                    customer.AccountType     = value;
                    PasswordBox.PasswordChar = '•';
                }

                context.Customers.Add(customer);
                context.SaveChanges();
                MessageBox.Show("Customer added");
            }
        }
        private void MovieList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Movie current = (Movie)MovieList.SelectedItem;

            if (current == null)
            {
                return;
            }

            List <string> info = new List <string>();

            using (var context = new MovieRentalEntities())
            {
                var movie = context.Movies.Where(m => m.MovieID == current.MovieID).Single();

                info.Add("Genre: " + movie.Genre.ToString());
                info.Add("Distribution Fee: $" + movie.DistributionFee.ToString("0.00"));
                info.Add("Number of copies: " + movie.NumberOfCopies.ToString());
                info.Add("Rating: " + movie.Rating.ToString());
                info.Add("Orders this week: " + GetWeeklyOrders(movie.MovieID));
                info.Add("Orders this month: " + GetMonthlyOrders(movie.MovieID));
                info.Add("Orders this year: " + GetYearlyOrders(movie.MovieID));
            }

            MovieInfo.ItemsSource = info;
        }
Exemple #3
0
        public BrowseRentals()
        {
            InitializeComponent();

            using (var context = new MovieRentalEntities())
            {
                var orders = context.Orders.Include("Movie").Include("Customer").ToList();

                OrderList.DisplayMemberPath = "EmployeeOrderInfo";
                OrderList.ItemsSource       = orders;
            }

            SearchBy.Items.Add("Customer");
            SearchBy.Items.Add("Movie Title");
            SearchBy.Items.Add("Genre");

            Genres.ItemsSource       = GenreDict.genreDict;
            Genres.SelectedValuePath = "Value";
            Genres.DisplayMemberPath = "Value";
            Genres.SelectedIndex     = 0;

            SearchBox.Visibility    = Visibility.Hidden;
            Genres.Visibility       = Visibility.Hidden;
            SearchButton.Visibility = Visibility.Hidden;
            FirstName.Visibility    = Visibility.Hidden;
            LastName.Visibility     = Visibility.Hidden;
        }
Exemple #4
0
        public Employee GetTopEmployee(DateTime firstOfMonth, DateTime lastOfMonth)
        {
            TopEmployee employee;

            using (var context = new MovieRentalEntities())
            {
                var          empQuery = "SELECT Employee.SIN, COUNT(OrderID) as NumberOfOrders FROM dbo.Employee,dbo.Orders WHERE Employee.SIN = Orders.SIN AND Orders.RentalDate >= @first AND Orders.RentalDate <= @last GROUP BY Employee.SIN ORDER BY (NumberOfOrders) DESC";
                SqlParameter first    = new SqlParameter("@first", firstOfMonth);
                SqlParameter last     = new SqlParameter("@last", lastOfMonth);

                var topEmployee = context.Database.SqlQuery <TopEmployee>(empQuery, first, last).ToList();

                if (topEmployee.Count() != 0)
                {
                    employee = topEmployee.First();

                    Employee top = context.Employees.Where(emp => emp.SIN == employee.SIN).Single();

                    return(top);
                }
                else
                {
                    return(null);
                }
            }
        }
        private void Approve_Click(object sender, RoutedEventArgs e)
        {
            Order current = (Order)OrderList.SelectedItem;

            using (var context = new MovieRentalEntities())
            {
                var order = context.Orders.Include("Movie").SingleOrDefault(o => o.OrderID == current.OrderID);

                if (order != null)
                {
                    order.SIN            = employee.SIN;
                    order.RentalDate     = System.DateTime.Today;
                    order.ExpectedReturn = System.DateTime.Today.AddMonths(1);
                    order.Movie.NumberOfCopies--;
                    context.SaveChanges();

                    MessageBox.Show("Order has been approved");

                    // Refresh order list
                    OrderList.ItemsSource = null;
                    OrderList.ItemsSource = GetOrders();
                    OrderInfo.ItemsSource = null;
                }
            }
        }
        public EditMovies()
        {
            InitializeComponent();

            using (var context = new MovieRentalEntities())
            {
                var movies = from m in context.Movies
                             select m;

                MovieList.DisplayMemberPath = "Title";
                MovieList.ItemsSource       = movies.ToList();
            }

            SearchBy.Items.Add("Title");
            SearchBy.Items.Add("Genre");
            SearchBy.Items.Add("Popular");

            Genres.ItemsSource       = GenreDict.genreDict;
            Genres.SelectedValuePath = "Value";
            Genres.DisplayMemberPath = "Value";
            Genres.SelectedIndex     = 0;

            PopularCount.Items.Add("Top 5");
            PopularCount.Items.Add("Top 10");
            PopularCount.Items.Add("Top 100");

            SearchBox.Visibility    = Visibility.Hidden;
            Genres.Visibility       = Visibility.Hidden;
            PopularCount.Visibility = Visibility.Hidden;
            SearchButton.Visibility = Visibility.Hidden;
        }
Exemple #7
0
        public List <Customer> GetTopCustomers(DateTime firstOfMonth, DateTime lastOfMonth)
        {
            List <Customer> topCustomers = new List <Customer>();

            using (var context = new MovieRentalEntities())
            {
                var          cusQuery = "SELECT Customer.AccountNumber, COUNT(OrderID) as NumberOfOrders FROM Customer,Orders WHERE Customer.AccountNumber = Orders.AccountNumber AND Orders.RentalDate >= @first AND Orders.RentalDate <= @last GROUP BY Customer.AccountNumber ORDER BY (NumberOfOrders) DESC";
                SqlParameter first    = new SqlParameter("@first", firstOfMonth);
                SqlParameter last     = new SqlParameter("@last", lastOfMonth);

                var results = context.Database.SqlQuery <TopCustomer>(cusQuery, first, last).ToList();

                if (results.Count() != 0)
                {
                    foreach (TopCustomer cust in results)
                    {
                        Customer top = context.Customers.Where(c => c.AccountNumber == cust.AccountNumber).Single();
                        topCustomers.Add(top);
                    }

                    return(topCustomers);
                }
                else
                {
                    Console.WriteLine("Is null");
                    return(null);
                }
            }
        }
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            Employee selected = (Employee)EmployeeList.SelectedItem;

            if (selected != null)
            {
                using (var context = new MovieRentalEntities())
                {
                    if (MessageBox.Show("Are you sure you want to delete " + selected.FirstName + " " + selected.LastName + "?", "Delete Employee", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        // Remove all references to the movie
                        var employee = context.Employees.Where(emp => emp.SIN == selected.SIN).Single();
                        context.Employees.Remove(employee);

                        var orders = context.Orders.Where(o => o.SIN == selected.SIN);

                        foreach (Order order in orders)
                        {
                            order.SIN = null;
                        }

                        context.SaveChanges();
                        MessageBox.Show(selected.FirstName + " " + selected.LastName + " deleted");
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
        public BrowseOrders(Customer customer)
        {
            InitializeComponent();
            this.customer = customer;

            var gridView = new GridView();

            this.OrderList.View = gridView;

            gridView.Columns.Add(new GridViewColumn
            {
                Header = "OrderID",
                DisplayMemberBinding = new Binding("OrderID")
            });

            gridView.Columns.Add(new GridViewColumn
            {
                Header = "Movie",
                DisplayMemberBinding = new Binding("Title")
            });

            gridView.Columns.Add(new GridViewColumn
            {
                Header = "Rental Date",
                DisplayMemberBinding = new Binding("Date")
            });

            gridView.Columns.Add(new GridViewColumn
            {
                Header = "Expected Return",
                DisplayMemberBinding = new Binding("Expected")
            });

            using (var context = new MovieRentalEntities())
            {
                // Orders that have been approved and not returned yet
                var orders = context.Orders.Include("Movie").Where(o => o.AccountNumber == customer.AccountNumber && o.RentalDate != null &&
                                                                   o.ActualReturn == null).ToList();

                foreach (Order order in orders)
                {
                    OrderList.Items.Add(new OrderView {
                        OrderID = order.OrderID, Title = order.Movie.Title,
                        Date    = order.RentalDate.Value.ToShortDateString(), Expected = order.ExpectedReturn.Value.ToShortDateString()
                    });
                }
            }

            using (var context = new MovieRentalEntities())
            {
                // Orders that have been returned
                var history = context.Orders.Include("Movie").Where(o => o.AccountNumber == customer.AccountNumber && o.ActualReturn != null).ToList();

                History.DisplayMemberPath = "CustomerOrderInfo";
                History.ItemsSource       = history;
            }
        }
Exemple #10
0
        private void ResetButton_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                var orders = context.Orders.Include("Movie").Include("Customer").ToList();

                OrderList.ItemsSource = orders;
            }
        }
 public List <Order> GetOrders()
 {
     using (var context = new MovieRentalEntities())
     {
         context.Configuration.LazyLoadingEnabled = false;
         var orders = context.Orders.Include("Movie").Include("Customer").Where(order => order.RentalDate == null).ToList();
         return(orders);
     }
 }
        private void SearchButton_Click(object sender, RoutedEventArgs e)
        {
            string search = SearchBox.Text;

            using (var context = new MovieRentalEntities())
            {
                var movies = context.Movies.Where(movie => movie.Title.Contains(SearchBox.Text)).ToList();
                MovieList.ItemsSource = movies;
            }
        }
        // TODO: Tab indices
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                var customer = context.Customers.SingleOrDefault(c => c.AccountNumber == this.customer.AccountNumber);

                if (customer != null)
                {
                    if (!string.IsNullOrWhiteSpace(FirstNameBox.Text))
                    {
                        customer.FirstName = FirstNameBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(LastNameBox.Text))
                    {
                        customer.LastName = LastNameBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(AddressBox.Text))
                    {
                        customer.Address = AddressBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(CityBox.Text))
                    {
                        customer.City = CityBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(ProvinceBox.Text))
                    {
                        customer.Province = ProvinceBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(PostalCodeBox.Text))
                    {
                        customer.PostalCode = PostalCodeBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(PhoneNumberBox.Text))
                    {
                        customer.Phone = PhoneNumberBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(EmailBox.Text))
                    {
                        customer.Email = EmailBox.Text;
                    }
                    if (!string.IsNullOrWhiteSpace(UsernameBox.Text))
                    {
                        customer.Username = UsernameBox.Text;
                    }

                    if (!string.IsNullOrWhiteSpace(PasswordBox.Password) && PasswordBox.Password == ConfirmBox.Password)
                    {
                        customer.Password = PasswordBox.Password;
                    }

                    context.SaveChanges();
                    MessageBox.Show("Changes saved");
                }
            }
        }
        private void Genres_DropDownClosed(object sender, EventArgs e)
        {
            string genre = Genres.SelectedValue.ToString();

            using (var context = new MovieRentalEntities())
            {
                var movies = context.Movies.Where(m => m.Genre == genre).ToList();

                MovieList.ItemsSource = movies;
            }
        }
        private void ResetButton_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                var movies = from m in context.Movies
                             select m;

                MovieList.ItemsSource   = movies.ToList();
                MovieList.SelectedIndex = 0;
            }
        }
Exemple #16
0
        private void Genres_DropDownClosed(object sender, EventArgs e)
        {
            string genre = Genres.SelectedValue.ToString();

            using (var context = new MovieRentalEntities())
            {
                var orders = context.Orders.Include("Movie").Where(o => o.Movie.Genre == genre).ToList();

                OrderList.ItemsSource = orders;
            }
        }
        private int GetYearlyOrders(int movieID)
        {
            DateTime firstOfYear = new DateTime(DateTime.Now.Year, 1, 1);

            using (var context = new MovieRentalEntities())
            {
                var query       = "SELECT COUNT(OrderID) as NumberOfOrders FROM dbo.Orders WHERE Orders.RentalDate >= @date AND MovieID = @id";
                var yearRentals = context.Database.SqlQuery <int>(query, new SqlParameter("@date", firstOfYear),
                                                                  new SqlParameter("@id", movieID)).Single();

                return(yearRentals);
            }
        }
        private void ReturnButton_Click(object sender, RoutedEventArgs e)
        {
            OrderView current = (OrderView)OrderList.SelectedItem;

            using (var context = new MovieRentalEntities())
            {
                var order = context.Orders.Include("Movie").SingleOrDefault(o => o.OrderID == current.OrderID);

                order.ActualReturn = DateTime.Today;
                order.Movie.NumberOfCopies++;
                context.SaveChanges();
                MessageBox.Show("Movie has been returned");
            }
        }
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                if (PasswordBox.Password == ConfirmBox.Password)
                {
                    try
                    {
                        string position = AccountType.SelectedItem.ToString();
                        int    type;

                        if (position == "Employee")
                        {
                            type = 1;
                        }
                        else
                        {
                            type = 0;
                        }
                        Employee employee = new Employee()
                        {
                            SIN         = SINBox.Text,
                            FirstName   = FirstNameBox.Text,
                            LastName    = LastNameBox.Text,
                            Address     = AddressBox.Text,
                            City        = CityBox.Text,
                            Province    = ProvinceBox.Text,
                            PostalCode  = PostalCodeBox.Text,
                            Phone       = PhoneBox.Text,
                            StartDate   = DateTime.Today,
                            Wage        = Convert.ToDecimal(WageBox.Text),
                            Username    = UsernameBox.Text,
                            Password    = PasswordBox.Password,
                            AccountType = type
                        };

                        context.Employees.Add(employee);
                        context.SaveChanges();

                        MessageBox.Show("Employee added");
                    }
                    catch
                    {
                        MessageBox.Show("Error adding employee");
                        return;
                    }
                }
            }
        }
        public ManageEmployees()
        {
            InitializeComponent();

            using (var context = new MovieRentalEntities())
            {
                var employees = from e in context.Employees select e;
                EmployeeList.DisplayMemberPath = "FirstName";

                EmployeeList.ItemsSource   = employees.ToList();
                EmployeeList.SelectedIndex = -1;
            }

            AccountType.Items.Add("Employee"); AccountType.Items.Add("Manager");
        }
Exemple #21
0
        private void OrderList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            RentalInfo.Items.Clear();

            Order order = (Order)OrderList.SelectedItem;

            using (var context = new MovieRentalEntities())
            {
                var movie = context.Movies.Where(m => m.MovieID == order.MovieID).Single();

                RentalInfo.Items.Add("Movie: " + movie.Title);
                RentalInfo.Items.Add("Customer: " + order.Customer.FullName);
                RentalInfo.Items.Add("Rental Date: " + order.RentalDate.ToString());
                RentalInfo.Items.Add("Return Date: " + order.ActualReturn.ToString());
            }
        }
        public ManageCustomers(Customer customer)
        {
            InitializeComponent();

            using (var context = new MovieRentalEntities())
            {
                var customers = from c in context.Customers
                                select c;

                CustomerList.DisplayMemberPath = "FirstName";
                CustomerList.SelectedValuePath = "AccountNumber";

                CustomerList.ItemsSource   = customers.ToList();
                CustomerList.SelectedIndex = 0;
            }
        }
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            Movie current = (Movie)MovieList.SelectedItem;

            if (current != null)
            {
                using (var context = new MovieRentalEntities())
                {
                    if (MessageBox.Show("Are you sure you want to delete " + current.Title + "?", "Delete Movie", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        // Remove all references to the movie
                        var movie = context.Movies.Where(m => m.MovieID == current.MovieID).Single();
                        context.Movies.Remove(movie);

                        var orders = context.Orders.Where(o => o.MovieID == current.MovieID);

                        foreach (Order order in orders)
                        {
                            context.Orders.Remove(order);
                        }

                        var queues = context.Queues.Where(q => q.MovieID == current.MovieID);

                        foreach (Queue queue in queues)
                        {
                            context.Queues.Remove(queue);
                        }

                        var credits = context.Credits.Where(c => c.MovieID == current.MovieID);

                        foreach (Credit credit in credits)
                        {
                            context.Credits.Remove(credit);
                        }

                        context.SaveChanges();
                        MessageBox.Show(current.Title + " deleted");
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
        private void Rate_Click(object sender, RoutedEventArgs e)
        {
            Order selected = (Order)History.SelectedItem;

            if (selected == null)
            {
                MessageBox.Show("Please select a movie to rate");
            }
            else
            {
                using (var context = new MovieRentalEntities())
                {
                    var movie        = context.Movies.Where(m => m.MovieID == selected.MovieID).Single();
                    var RatingWindow = new RatingWindow(movie);
                    RatingWindow.Show();
                }
            }
        }
Exemple #25
0
        private void SearchButton_Click(object sender, RoutedEventArgs e)
        {
            string search = SearchBox.Text;

            using (var context = new MovieRentalEntities())
            {
                string current = (string)SearchBy.SelectedItem;

                switch (current)
                {
                case "Customer":
                    if (!string.IsNullOrWhiteSpace(FirstName.Text) && !string.IsNullOrWhiteSpace(LastName.Text))
                    {
                        var customerOrders = context.Orders.Include("Customer").Include("Movie").Where(o => o.Customer.FirstName.Contains(FirstName.Text) &&
                                                                                                       o.Customer.LastName.Contains(LastName.Text)).ToList();
                        OrderList.ItemsSource = customerOrders;
                        break;
                    }
                    else if (!string.IsNullOrWhiteSpace(FirstName.Text))
                    {
                        var customerOrders = context.Orders.Include("Customer").Include("Movie").Where(o => o.Customer.FirstName.Contains(FirstName.Text)).ToList();
                        OrderList.ItemsSource = customerOrders;
                        break;
                    }
                    else if (!string.IsNullOrWhiteSpace(LastName.Text))
                    {
                        var customerOrders = context.Orders.Include("Customer").Include("Movie").Where(o => o.Customer.LastName.Contains(LastName.Text)).ToList();
                        OrderList.ItemsSource = customerOrders;
                        break;
                    }
                    else
                    {
                        OrderList.ItemsSource = null;
                        break;
                    }

                case "Movie Title":
                    var movieRentals = context.Orders.Include("Movie").Where(o => o.Movie.Title.Contains(search)).ToList();
                    OrderList.ItemsSource = movieRentals;
                    break;
                }
            }
        }
Exemple #26
0
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            int copies; decimal fee;

            string genre = Genre.SelectedValue.ToString();

            try
            {
                copies = Convert.ToInt32(NumberOfCopies.Text);
            }
            catch
            {
                MessageBox.Show("Error in number of copies");
                return;
            }

            try
            {
                fee = Convert.ToDecimal(DistributionFee.Text);
            }
            catch
            {
                MessageBox.Show("Error in distribution fee");
                return;
            }

            using (var context = new MovieRentalEntities())
            {
                var movie = context.Movies.Where(m => m.MovieID == this.movie.MovieID).Single();

                movie.Genre           = genre;
                movie.NumberOfCopies  = copies;
                movie.DistributionFee = fee;

                context.SaveChanges();

                if (MessageBox.Show("Changes saved", movie.Title, MessageBoxButton.OK, MessageBoxImage.None) == MessageBoxResult.OK)
                {
                    this.Close();
                }
            }
        }
        private void Confirm_Click(object sender, RoutedEventArgs e)
        {
            using (var context = new MovieRentalEntities())
            {
                var mov = context.Movies.Where(m => m.MovieID == this.movie.MovieID).Single();

                int total = (int)client.GetMovieAsync(mov.MovieID).Result.VoteAverage *client.GetMovieAsync(mov.MovieID).Result.VoteCount;
                int votes = client.GetMovieAsync(mov.MovieID).Result.VoteCount;

                votes = votes++;

                if (RateOne.IsChecked == true)
                {
                    total = total + 1;
                }
                else if (RateTwo.IsChecked == true)
                {
                    total = total + 2;
                }
                else if (RateThree.IsChecked == true)
                {
                    total = total + 3;
                }
                else if (RateFour.IsChecked == true)
                {
                    total = total + 4;
                }
                else if (RateFive.IsChecked == true)
                {
                    total = total + 5;
                }

                Console.WriteLine(total); Console.WriteLine(votes);

                mov.Rating = (int)Math.Round((float)(total / votes)) / 2;

                context.SaveChanges();

                this.Close();
            }
        }
        private List <Movie> GetPopular(int count)
        {
            List <Movie> top = new List <Movie>();

            using (var context = new MovieRentalEntities())
            {
                var query   = "SELECT MovieID, COUNT(OrderID) as NumberOfOrders FROM dbo.Orders GROUP BY MovieID ORDER BY (NumberOfOrders) DESC";
                var popular = context.Database.SqlQuery <StorePopular>(query);

                var pop = popular.Take(count); // Requested number of most popular movies


                foreach (StorePopular p in pop)
                {
                    var movie = context.Movies.Where(m => m.MovieID == p.MovieID).Single();
                    top.Add(movie);
                }
            }

            return(top);
        }
        private void RemoveButton_Click(object sender, RoutedEventArgs e)
        {
            Customer selected = (Customer)CustomerList.SelectedItem;

            if (selected != null)
            {
                using (var context = new MovieRentalEntities())
                {
                    if (MessageBox.Show("Are you sure you want to delete " + selected.FirstName + " " + selected.LastName + "?", "Delete Customer", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        var customer = context.Customers.Where(cus => cus.AccountNumber == selected.AccountNumber).Single();
                        context.Customers.Remove(customer);

                        context.SaveChanges();
                        MessageBox.Show(selected.FirstName + " " + selected.LastName + " deleted");
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
        private int GetWeeklyOrders(int movieID)
        {
            // Sunday of this week
            DayOfWeek firstDay = 0;

            DateTime firstOfWeek = DateTime.Today.Date;

            // Find the date of this week's Sunday
            while (firstOfWeek.DayOfWeek != firstDay)
            {
                firstOfWeek = firstOfWeek.AddDays(-1);
            }

            DateTime date = firstOfWeek.Date;

            using (var context = new MovieRentalEntities())
            {
                var query       = "SELECT COUNT(OrderID) as NumberOfOrders FROM dbo.Orders WHERE Orders.RentalDate >= @date AND MovieID = @id";
                var weekRentals = context.Database.SqlQuery <int>(query, new SqlParameter("@date", date),
                                                                  new SqlParameter("@id", movieID)).Single();

                return(weekRentals);
            }
        }