Пример #1
0
        /// <summary>
        /// Многопараметрический поиск кассира
        /// </summary>
        /// <param name="f"></param>
        /// <param name="ent"></param>
        /// <param name="atr"></param>
        /// <param name="sign"></param>
        /// <param name="eqv"></param>
        /// <returns></returns>
        public static List <Сashier> Find(List <Сashier> f, string ent, string atr, string sign, string eqv)
        {
            List <Сashier> result = new List <Сashier>();

            switch (ent)
            {
            case "Кассир":
            {
                switch (atr)
                {
                case "ФИО":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.FIO == eqv select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.FIO != eqv select d).ToList(); break; }
                    }
                    break;
                }

                case "Логин":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.Login == eqv select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.Login != eqv select d).ToList(); break; }
                    }
                    break;
                }
                }
                break;
            }

            case "Кинотеатр":
            {
                List <Cinema>  cin  = CinemaWork.Search(db.CinemaSet.ToList(), atr, sign, eqv);
                List <Сashier> cash = new List <Сashier>();
                foreach (Cinema x in cin)
                {
                    cash.AddRange(x.Сashier);
                }
                result = (from d in f select d).Intersect(from a in cash select a).ToList();
                break;
            }
            }
            return(result);
        }
Пример #2
0
 private void btAdd_Click(object sender, EventArgs e)
 {
     if ((tbName.Text == "") || (tbCity.Text == "") || (tbAdress.Text == ""))
     {
         MessageBox.Show("Вы заполнили не все поля!");
     }
     else
     {
         if (add)
         {
             CinemaWork.Add(tbName.Text, tbCity.Text, tbAdress.Text);
         }
         else
         {
             CinemaWork.Change(tbName.Text, tbCity.Text, tbAdress.Text, cinema.ID);
         }
         form.UpdateCinema();
         saved = true;
         this.Close();
     }
 }
Пример #3
0
        private void DeleteCinema()
        {
            Cinema s = db.CinemaSet.Find(dgvList.SelectedRows[0].Cells[0].Value);

            if (!s.Deleted)
            {
                DialogResult dialogResult = MessageBox.Show("Кинотеатр и все его залы будут помечены, как удаленные, пользователи не смогут их увидеть. Вы сможете вернуть его в любое время. Однако все сеансы и кассиры в данном кинотеатре будут удалены безвозвратно. Возможно, на них были куплены билеты! Вы действительно хотите удалить кинотеатр? ", "Удаление кинотеатра", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    CinemaWork.Delete(s.ID);
                }
            }
            else
            {
                DialogResult dialogResult = MessageBox.Show("Кинотеатр и все его залы будут восстановлены, пользователи смогут их увидеть. Вы уверены, что хотите восстановить кинотеатр?", "Восстановление кинотеатра", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    CinemaWork.Restore(s.ID);
                }
            }
            db.SaveChanges();
            UpdateCinema();
            Information();
        }
Пример #4
0
        /// <summary>
        /// Многопараметрический поиск
        /// </summary>
        /// <param name="ok"></param>
        public void Search(bool ok)
        {//функция для многопараметрического поиска
            switch (NowEnt)
            {
            case eEntity.Фильм:
            {
                if (ok)
                {
                    nowfilms = FilmWork.Find(nowfilms, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                else
                {
                    films.AddRange(nowfilms);
                    nowfilms = db.FilmSet.ToList();
                    nowfilms = FilmWork.Find(nowfilms, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                List <Film> vivod = new List <Film>();
                vivod.AddRange(films);
                vivod.AddRange(nowfilms);
                dgvList.DataSource = (from d in vivod select new { d.ID, d.Name, d.Year, d.Producer, d.length, d.AgeLimit }).Distinct().ToList();
                FilmsColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Сеанс:
            {
                if (ok)
                {
                    nowsessions = SessionWork.Find(nowsessions, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                else
                {
                    sessions.AddRange(nowsessions);
                    nowsessions = db.SessionSet.ToList();
                    nowsessions = SessionWork.Find(nowsessions, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                List <Session> vivod = new List <Session>();
                vivod.AddRange(sessions);
                vivod.AddRange(nowsessions);
                dgvList.DataSource = (from d in vivod where d.Time > DateTime.Now select new { d.ID, d.Time, d.Film.Name, d.Hall.Cinema.City, d.Hall.Cinema.Adress, d.Price, d.Hall.Num }).Distinct().ToList();
                SessionColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Кинотеатр:
            {
                if (ok)
                {
                    nowcinemas = CinemaWork.Search(nowcinemas, cbAtr.Text, cbSign.Text, tbEqv.Text).ToList();
                }
                else
                {
                    cinemas.AddRange(nowcinemas);
                    nowcinemas = db.CinemaSet.ToList();
                    nowcinemas = CinemaWork.Search(nowcinemas, cbAtr.Text, cbSign.Text, tbEqv.Text).ToList();
                }
                List <Cinema> vivod = new List <Cinema>();
                vivod.AddRange(cinemas);
                vivod.AddRange(nowcinemas);
                if (user != eUser.Админ)
                {
                    dgvList.DataSource = (from d in vivod where d.Deleted == false select new { d.ID, d.Name, d.City, d.Adress }).Distinct().ToList();
                }
                else
                {
                    dgvList.DataSource = (from d in vivod select new { d.ID, d.Name, d.City, d.Adress, d.Deleted }).Distinct().ToList();
                }
                CinemaColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Зал:
            {
                if (ok)
                {
                    nowhalls = HallWork.Search(nowhalls, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                else
                {
                    halls.AddRange(nowhalls);
                    nowhalls = db.HallSet.ToList();
                    nowhalls = HallWork.Search(nowhalls, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                List <Hall> vivod = new List <Hall>();
                vivod.AddRange(halls);
                vivod.AddRange(nowhalls);
                if (user != eUser.Админ)
                {
                    dgvList.DataSource = (from d in vivod where d.Deleted == false select new { d.ID, d.Num, d.Cinema.Name, d.Cinema.City, d.Type, d.AmountOfRow, d.AmountOfSeats }).Distinct().ToList();
                }
                else
                {
                    dgvList.DataSource = (from d in vivod select new { d.ID, d.Num, d.Cinema.Name, d.Cinema.City, d.Type, d.AmountOfRow, d.AmountOfSeats, d.Deleted }).Distinct().ToList();
                }
                HallColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Кассир:
            {
                if (ok)
                {
                    nowcashiers = CashierWork.Find(nowcashiers, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text);
                }
                else
                {
                    cashiers.AddRange(nowcashiers);
                    nowcashiers = db.СashierSet.ToList();
                    nowcashiers = CashierWork.Find(nowcashiers, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text);
                }
                List <Сashier> vivod = new List <Сashier>();
                vivod.AddRange(cashiers);
                vivod.AddRange(nowcashiers);
                dgvList.DataSource = (from d in vivod select new { d.ID, d.FIO, d.Cinema.City, d.Cinema.Name, d.Login, d.Password }).Distinct().ToList();
                CashierColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Билет:
            {
                if (ok)
                {
                    nowtickets = TicketWork.Find(nowtickets, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                else
                {
                    tickets.AddRange(nowtickets);
                    nowtickets = db.TicketSet.ToList();
                    nowtickets = TicketWork.Find(nowtickets, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                List <Ticket> vivod = new List <Ticket>();
                vivod.AddRange(tickets);
                vivod.AddRange(nowtickets);
                dgvList.DataSource = (from d in vivod select new { d.Number, d.Seat.NumberOfRow, d.Seat.NumberOfSeat, d.Seat.Session.Time, d.Seat.Session.Film.Name, d.Seat.Session.Hall.Num, d.Seat.Session.Hall.Cinema.Adress }).Distinct().ToList();
                TBColomns();
                dgvList.Update();
                break;
            }

            case eEntity.Бронь:
            {
                if (ok)
                {
                    nowbookings = BookingWork.Find(nowbookings, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                else
                {
                    bookings.AddRange(nowbookings);
                    nowbookings = db.BookingSet.ToList();
                    nowbookings = BookingWork.Find(nowbookings, cbEnt.Text, cbAtr.Text, cbSign.Text, tbEqv.Text, cbEqv.Text);
                }
                List <Booking> vivod = new List <Booking>();
                vivod.AddRange(bookings);
                vivod.AddRange(nowbookings);
                dgvList.DataSource = (from d in vivod select new { d.Number, d.Seat.NumberOfRow, d.Seat.NumberOfSeat, d.Seat.Session.Time, d.Seat.Session.Film.Name, d.Seat.Session.Hall.Num, d.Seat.Session.Hall.Cinema.Adress }).Distinct().ToList();
                TBColomns();
                dgvList.Update();
                break;
            }

            default: { break; }
            }
        }
Пример #5
0
        /// <summary>
        /// Многопараметрический поиск зала
        /// </summary>
        /// <param name="f"></param>
        /// <param name="ent"></param>
        /// <param name="atr"></param>
        /// <param name="sign"></param>
        /// <param name="eqv"></param>
        /// <param name="eqv2"></param>
        /// <returns></returns>
        public static List <Hall> Search(List <Hall> f, string ent, string atr, string sign, string eqv, string eqv2)
        {
            List <Hall> result = new List <Hall>();

            switch (ent)
            {
            case "Зал":
            {
                switch (atr)
                {
                case "Номер":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.Num == int.Parse(eqv) select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.Num != int.Parse(eqv) select d).ToList(); break; }

                    case ">": { result = (from d in f where d.Num > int.Parse(eqv) select d).ToList(); break; }

                    case "<": { result = (from d in f where d.Num < int.Parse(eqv) select d).ToList(); break; }

                    case ">=": { result = (from d in f where d.Num >= int.Parse(eqv) select d).ToList(); break; }

                    case "<=": { result = (from d in f where d.Num <= int.Parse(eqv) select d).ToList(); break; }
                    }
                    break;
                }

                case "Тип":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.Type == eqv2 select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.Type != eqv2 select d).ToList(); break; }
                    }
                    break;
                }

                case "Количество рядов":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.AmountOfRow == int.Parse(eqv) select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.AmountOfRow != int.Parse(eqv) select d).ToList(); break; }

                    case ">": { result = (from d in f where d.AmountOfRow > int.Parse(eqv) select d).ToList(); break; }

                    case "<": { result = (from d in f where d.AmountOfRow < int.Parse(eqv) select d).ToList(); break; }

                    case ">=": { result = (from d in f where d.AmountOfRow >= int.Parse(eqv) select d).ToList(); break; }

                    case "<=": { result = (from d in f where d.AmountOfRow <= int.Parse(eqv) select d).ToList(); break; }
                    }
                    break;
                }

                case "Количество мест в ряду":
                {
                    switch (sign)
                    {
                    case "=": { result = (from d in f where d.AmountOfSeats == int.Parse(eqv) select d).ToList(); break; }

                    case "!=": { result = (from d in f where d.AmountOfSeats != int.Parse(eqv) select d).ToList(); break; }

                    case ">": { result = (from d in f where d.AmountOfSeats > int.Parse(eqv) select d).ToList(); break; }

                    case "<": { result = (from d in f where d.AmountOfSeats < int.Parse(eqv) select d).ToList(); break; }

                    case ">=": { result = (from d in f where d.AmountOfSeats >= int.Parse(eqv) select d).ToList(); break; }

                    case "<=": { result = (from d in f where d.AmountOfSeats <= int.Parse(eqv) select d).ToList(); break; }
                    }
                    break;
                }
                }
                break;
            }

            case "Кинотеатр":
            {
                List <Cinema> cin  = CinemaWork.Search(db.CinemaSet.ToList(), atr, sign, eqv);
                List <Hall>   cash = new List <Hall>();
                foreach (Cinema x in cin)
                {
                    cash.AddRange(x.Hall);
                }
                result = (from d in f select d).Intersect(from a in cash select a).ToList();
                break;
            }
            }
            return(result);
        }