示例#1
0
        private void datePicker1_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (datePicker1.SelectedDate == null || datePicker1.SelectedDate == null)
                {
                    throw new Exception("Не введены даты");
                }

                DateTime DT1 = (DateTime)datePicker1.SelectedDate;
                DateTime DT2 = (DateTime)datePicker2.SelectedDate;

                CinemaDataContext Context = new CinemaDataContext();
                tbPeriod.Text = Context.CountCashPeriod(DT1, DT2).ToString();
            }
            catch (Exception E)
            {
            }
        }
示例#2
0
 private void button4_Click(object sender, RoutedEventArgs e)
 {
     if (cmbFilm3.SelectedItem != null)
     {
         if (MessageBox.Show("Вы действительно хотите удалить этот фиильм?", "", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
         {
             try
             {
                 CinemaDataContext Context = new CinemaDataContext();
                 int MovieID = (from M in Context.tblMovies where M.MovieName == (string)cmbFilm3.SelectedItem select M.MovieID).ToArray()[0];
                 if (Context.HasShows(MovieID) == 1)
                 {
                     throw new Exception("На данный фильм есть сеансы");
                 }
                 Context.ExecuteCommand("delete from tblMovie where MovieID = " + MovieID.ToString());
             }
             catch (Exception E)
             {
                 MessageBox.Show("Ошибка: " + E.Message);
             }
         }
     }
 }
示例#3
0
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            CinemaDataContext Context = new CinemaDataContext();

            Context.ExecuteCommand("delete from tblSeat");
            List <tblRoom> Rooms = Context.tblRooms.ToList();
            int            c     = 0;

            foreach (tblRoom R in Rooms)
            {
                for (int i = 0; i < R.RowNumber; i++)
                {
                    for (int j = 0; j < R.SeatsNumber; j++)
                    {
                        tblSeat Seat = new tblSeat();
                        Seat.RoomID = R.RoomID;
                        Seat.Row    = i + 1;
                        Seat.Seat   = j + 1;

                        if (j > R.SeatsNumber / 5 && j < R.SeatsNumber * 4 / 5 &&
                            i > R.RowNumber / 3 && i < R.RowNumber * 4 / 5)
                        {
                            Seat.Vip = 0;
                        }
                        else
                        {
                            Seat.Vip = 1;
                        }
                        // Seat.Vip = 0;
                        c++;
                        Context.tblSeats.InsertOnSubmit(Seat);
                    }
                }
            }
            Context.SubmitChanges();
        }
示例#4
0
        private void cmbShow_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (cmbShow.SelectedIndex != -1)
            {
                try
                {
                    gridBook.Visibility = System.Windows.Visibility.Visible;

                    CinemaDataContext Context = new CinemaDataContext();

                    string   MovieName = (string)cmbFilms.SelectedItem;
                    DateTime Date      = (DateTime)cmbDate.SelectedItem;

                    var ShowQuery = (from S in Context.tblShows
                                     join M in Context.tblMovies
                                     on S.MovieID equals M.MovieID
                                     where M.MovieName == MovieName && S.Date == Date && S.Session == Times[cmbShow.SelectedIndex]
                                     select S).Distinct();

                    Show = ShowQuery.First();

                    lblNotVip.Content = " - Эконом (" + Show.NotVipPrice.ToString() + ")";
                    lblVip.Content    = " - VIP (" + Show.VipPrice.ToString() + ")";

                    RedrawRoom((from R in Context.tblRooms where R.RoomID == Show.RoomID select R).First());
                }
                catch (Exception E)
                {
                    MessageBox.Show("Ошибка: " + E.Message);
                }
            }
            else
            {
                gridBook.Visibility = System.Windows.Visibility.Collapsed;
            }
        }
示例#5
0
        private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            CinemaDataContext Context;

            try
            {
                Context = new CinemaDataContext();
            }
            catch
            {
                MessageBox.Show("Невозможно подсоединиться к базе данных");
                return;
            }

            try
            {
                DateTime DT1, DT2;
                if (datePicker1.SelectedDate == null)
                {
                    DT1 = new DateTime(DateTime.Now.Year, 01, 01);
                }
                else
                {
                    DT1 = (DateTime)datePicker1.SelectedDate;
                }
                if (datePicker2.SelectedDate == null)
                {
                    DT2 = new DateTime(2012, 01, 01);
                }
                else
                {
                    DT2 = (DateTime)datePicker2.SelectedDate;
                }

                int MovieID = (from M in Context.tblMovies where M.MovieName == (string)comboBox1.SelectedItem select M.MovieID).ToArray()[0];

                List <int> FilmsID;
                GetID(Context, tbFilms.Text, out FilmsID);
                if (FilmsID.Count == 0)
                {
                    FilmsID.AddRange((from M in Context.tblMovies select M.MovieID).ToArray());
                }

                dataGrid1.ItemsSource = from S in Context.tblShows
                                        join M in Context.tblMovies
                                        on S.MovieID equals M.MovieID
                                        where S.Date >= DT1 && S.Date <= DT2 &&
                                        FilmsID.Contains(M.MovieID)
                                        select new
                {
                    ID             = S.ShowID,
                    Дата           = S.Date.ToShortDateString(),
                    Время          = S.Session.ToShortTimeString(),
                    Фильм          = M.MovieName,
                    Зал            = S.RoomID,
                    Свободных_мест = Context.FreePlaces(S.ShowID)
                };
            }
            catch
            {
                MessageBox.Show("Ошибка формирования запроса");
            }
        }
示例#6
0
        private void btnOrder_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                CinemaDataContext Context   = new CinemaDataContext();
                List <tblTicket>  TempSeats = new List <tblTicket>();

                int Sum = 0;
                for (int i = 0; i < Seats.GetLength(0); i++)
                {
                    for (int j = 0; j < Seats.GetLength(1); j++)
                    {
                        if (Seats[i, j].IsSelected)
                        {
                            if ((from T in Context.tblTickets
                                 where T.ShowID == Show.ShowID && T.Row == i + 1 && T.Seat == j + 1 && T.Status == 1
                                 select T).Count() != 0)
                            {
                                throw new Exception("Место " + (j + 1).ToString() + " в ряду " + (i + 1).ToString() + " уже занято" +
                                                    Environment.NewLine + "Заказ будет отменен");
                            }

                            tblTicket Ticket = (from T in Context.tblTickets
                                                where T.Row == i + 1 && T.Seat == j + 1 && T.ShowID == Show.ShowID
                                                select T).First();
                            TempSeats.Add(Ticket);

                            if (Seats[i, j].IsVip)
                            {
                                Sum += Show.VipPrice;
                            }
                            else
                            {
                                Sum += Show.NotVipPrice;
                            }
                        }
                    }
                }

                foreach (var T in TempSeats)
                {
                    tblSoldTicket SoldTicket = new tblSoldTicket();
                    SoldTicket.UserID   = (int)Settings.UserID;
                    SoldTicket.TicketID = T.TicketID;

                    T.Status = 1;
                    Context.tblSoldTickets.InsertOnSubmit(SoldTicket);
                }

                try
                {
                    Context.SubmitChanges();

                    MessageBox.Show("Вы заказали " + TempSeats.Count + " билет(а/ов)" + Environment.NewLine +
                                    "на сумму " + Sum + " руб.");
                    foreach (var T in TempSeats)
                    {
                        Ticket TicketWindow = new Ticket(MovieName, Show.Date, Show.Session, Show.RoomID, (int)T.Row, (int)T.Seat,
                                                         Seats[(int)T.Row - 1, (int)T.Seat - 1].IsVip ? Show.VipPrice : Show.NotVipPrice);
                        TicketWindow.ShowDialog();
                    }
                }
                catch (Exception E)
                {
                    MessageBox.Show("Невозможно сделать заказ: " + E.Message);
                }
            }
            catch (Exception E)
            {
                MessageBox.Show("Ошибка: " + E.Message);
            }
            button2_Click(sender, e);
        }
示例#7
0
        void RedrawRoom(tblRoom Room)
        {
            CinemaDataContext Context = new CinemaDataContext();

            tbRoomID.Text = Room.RoomID.ToString();

            wrapPanel1.Children.Clear();
            double SeatWidth  = wrapPanel1.ActualWidth / (Room.SeatsNumber + 1);
            double SeatHeight = wrapPanel1.ActualHeight / (Room.RowNumber + 1);

            Seats = new Seat[Room.RowNumber, Room.SeatsNumber];

            TextBlock TB = new TextBlock();

            TB.Text   = "";
            TB.Width  = SeatWidth;
            TB.Height = SeatHeight;
            TB.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
            TB.VerticalAlignment   = System.Windows.VerticalAlignment.Center;
            TB.Background          = new SolidColorBrush(Colors.AntiqueWhite);
            wrapPanel1.Children.Add(TB);
            for (int j = 0; j < Room.SeatsNumber; j++)
            {
                TB        = new TextBlock();
                TB.Text   = (j + 1).ToString();
                TB.Width  = SeatWidth;
                TB.Height = SeatHeight;
                TB.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                TB.VerticalAlignment   = System.Windows.VerticalAlignment.Center;
                TB.Background          = new SolidColorBrush(Colors.AntiqueWhite);
                wrapPanel1.Children.Add(TB);
            }
            for (int i = 0; i < Room.RowNumber; i++)
            {
                TB        = new TextBlock();
                TB.Text   = (i + 1).ToString();
                TB.Width  = SeatWidth;
                TB.Height = SeatHeight;
                TB.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                TB.VerticalAlignment   = System.Windows.VerticalAlignment.Center;
                TB.Background          = new SolidColorBrush(Colors.AntiqueWhite);
                wrapPanel1.Children.Add(TB);

                for (int j = 0; j < Room.SeatsNumber; j++)
                {
                    Button          B     = new Button();
                    SolidColorBrush Brush = new SolidColorBrush();

                    int Vip = (from S in Context.tblSeats
                               where S.RoomID == Room.RoomID &&
                               S.Row == i + 1 && S.Seat == j + 1
                               select S.Vip).ToArray()[0];
                    if (Vip == 0)
                    {
                        Brush             = (SolidColorBrush)borderVIP.Background;
                        Seats[i, j].IsVip = true;
                    }
                    else
                    {
                        Brush             = (SolidColorBrush)borderFree.Background;
                        Seats[i, j].IsVip = false;
                    }


                    if ((from T in Context.tblTickets
                         where T.ShowID == Show.ShowID && T.Row == i + 1 && T.Seat == j + 1 && T.Status == 1
                         select T).Count() != 0)
                    {
                        Brush = (SolidColorBrush)borderBusy.Background;
                        Seats[i, j].IsFree = false;
                    }
                    else
                    {
                        Seats[i, j].IsFree = true;
                    }

                    Seats[i, j].IsSelected = false;

                    B.Tag                 = i.ToString() + " " + j.ToString();
                    B.Background          = Brush;
                    B.Width               = SeatWidth;
                    B.Height              = SeatHeight;
                    B.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
                    B.VerticalAlignment   = System.Windows.VerticalAlignment.Stretch;
                    B.Click              += btnSeat_Click;

                    wrapPanel1.Children.Add(B);
                }
            }
        }
示例#8
0
        private void button7_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (cmbFilm2.SelectedValue == null)
                {
                    throw new Exception("Не выбран фильм");
                }
                if (cmbRoom.SelectedValue == null)
                {
                    throw new Exception("Не выбран зал");
                }
                if (datePicker1.SelectedDate == null || datePicker2.SelectedDate == null)
                {
                    throw new Exception("Не выбрана дата");
                }

                DateTime DT1 = (DateTime)datePicker1.SelectedDate;
                DateTime DT2 = (DateTime)datePicker2.SelectedDate;


                if (DT2.DayOfYear - DT1.DayOfYear > 7)
                {
                    throw new Exception("Максимальная количество дней - 7");
                }

                CinemaDataContext Context = new CinemaDataContext();
                int MovieID = (from M in Context.tblMovies where M.MovieName == (string)cmbFilm2.SelectedValue select M.MovieID).ToArray()[0];
                int RoomID  = (int)cmbRoom.SelectedValue;

                for (DateTime DT = DT1; DT <= DT2; DT = DT.Date.AddDays(1))
                {
                    DateTime NewSession = new DateTime(2011, 01, 01, Convert.ToInt32(udHour.Value), Convert.ToInt32(udMinute.Value), 0);
                    int?     S          = Context.IsShowCorrect(RoomID, MovieID, DT, NewSession);
                    if (DT <= DateTime.Now)
                    {
                        MessageBox.Show("Сеанс " + DT.ToShortDateString() + " " + NewSession.Hour.ToString() + ":" +
                                        NewSession.Minute.ToString() + " раньше текущего времени");
                        continue;
                    }
                    if (S == 0 || S == null)
                    {
                        tblShow Show = new tblShow();
                        Show.MovieID     = (from M in Context.tblMovies where M.MovieName == (string)cmbFilm2.SelectedItem select M.MovieID).ToArray()[0];
                        Show.RoomID      = (int)cmbRoom.SelectedItem;
                        Show.Date        = DT;
                        Show.Session     = NewSession;
                        Show.VipPrice    = 0;
                        Show.NotVipPrice = 0;

                        Context.tblShows.InsertOnSubmit(Show);
                        Context.SubmitChanges();
                    }
                    else
                    {
                        MessageBox.Show("Сеанс с ID = " + S.ToString() + " пересекается с уже имеющимся сеансом в этом зале");
                    }
                }

                MessageBox.Show("Сеансы успешно добавлены");
            }
            catch (Exception E)
            {
                MessageBox.Show("Ошибка: " + E.Message);
            }
        }
示例#9
0
        private void button3_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                tblMovie Movie = new tblMovie();
                if (string.IsNullOrWhiteSpace(tbFilmName.Text))
                {
                    throw new Exception("Не введено название фильма");
                }
                Movie.MovieName = tbFilmName.Text;

                if (string.IsNullOrWhiteSpace(tbDirector.Text))
                {
                    throw new Exception("Не введено имя режиссера");
                }
                Movie.MovieDirector = tbDirector.Text;
                Movie.MovieDuration = Convert.ToInt32(udDuration.Value);
                Movie.MovieYear     = Convert.ToInt32(udYear.Value);
                Movie.MinAge        = Convert.ToInt32(udMinAge.Value);
                if (string.IsNullOrWhiteSpace(tbMainHero.Text))
                {
                    throw new Exception("Не введено имя главного актера");
                }
                Movie.MainActor = tbMainHero.Text;

                if (string.IsNullOrWhiteSpace(tbGenres.Text))
                {
                    throw new Exception("Не выбран хотя бы один жанр");
                }
                if (string.IsNullOrWhiteSpace(tbCountries.Text))
                {
                    throw new Exception("Не выбран хотя бы одна страна");
                }

                CinemaDataContext Context = new CinemaDataContext();
                Context.tblMovies.InsertOnSubmit(Movie);
                Context.SubmitChanges();

                int MovieID = (from M in Context.tblMovies where M.MovieName == tbFilmName.Text select M.MovieID).ToArray()[0];

                List <int> GenresID;
                List <int> CountriesID;
                GetID(tbGenres.Text, tbCountries.Text, out GenresID, out CountriesID);

                foreach (int ID in GenresID)
                {
                    tblMovieGenre MovieGenre = new tblMovieGenre();
                    MovieGenre.MovieID = MovieID;
                    MovieGenre.GenreID = ID;
                    Context.tblMovieGenres.InsertOnSubmit(MovieGenre);
                }

                foreach (int ID in CountriesID)
                {
                    tblMovieCountry MovieCountry = new tblMovieCountry();
                    MovieCountry.MovieID   = MovieID;
                    MovieCountry.CountryID = ID;
                    Context.tblMovieCountries.InsertOnSubmit(MovieCountry);
                }

                Context.SubmitChanges();

                ReloadFilmsRooms();

                MessageBox.Show("Фильм " + Movie.MovieName + " успешно добавлен");
            }
            catch (Exception Ex)
            {
                MessageBox.Show("Ошибка: " + Ex.Message);
            }
        }
 public CinemaLogic(CinemaDataContext data)
 {
     _cinema = data;
 }