예제 #1
0
        public void ExecuteBuy(object sender, RoutedEventArgs e)
        {
            float localPrice = float.Parse(price.Text);
            var   user       = dbContext.UsersMs.Local
                               .Single(o => o._user_id == Settings.Default.CurrentUserId);

            if (user._bill < localPrice)
            {
                MessageBox.Show(App.Current.Resources["Text_NotEnoughMoney"].ToString() + "", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                user._bill -= localPrice;

                dbContext.Entry(user).State = EntityState.Modified;
                dbContext.SaveChanges();

                // Создание билета после покупки:
                if (seatnum.Text == null)
                {
                    MessageBox.Show("Укажите место!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (carriageNum.Text == null)
                {
                    MessageBox.Show("Укажите номер вагона!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                TicketsM temp = new TicketsM();
                temp._seatnum         = Convert.ToInt32(seatnum.SelectedItem);
                temp._carriage_number = Convert.ToInt32(carriageNum.SelectedItem);
                temp._user_id         = (from o in dbContext.UsersMs
                                         where o._login == user._login
                                         select o._user_id).FirstOrDefault();

                // Добавляем объект в БД
                dbContext.TicketsMs.Local.Add(temp);
                dbContext.SaveChanges();

                MessageBox.Show(App.Current.Resources["Text_SuccessBuy"].ToString() + "", "Info", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
예제 #2
0
        // Verified
        public void Delete()
        {
            if (TableV.Current_DataGrid.SelectedItems.Count < 1)
            {
                MessageBox.Show("Выберите элементы для удаления!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            // Пока есть элементы, которые нужно удалить, то крутится цикл
            while (TableV.Current_DataGrid.SelectedItems.Count > 0)
            {
                index = TableV.Current_DataGrid.SelectedIndex;

                TicketsM deleteEntity = SourceList[index];

                SourceList.Remove(deleteEntity);
            }

            // Сохраняем контекст БД
            dbContext.SaveChanges();

            TableV.Current_DataGrid.ItemsSource = SourceList;
            TableV.Current_DataGrid.Items.Refresh();
        }
예제 #3
0
        // Verified
        public void ExecuteAddEdit(object sender, RoutedEventArgs e)
        {
            if (scheduleNum.Items.Count < 1)
            {
                MessageBox.Show("Рейсы отсутствуют в базе данных! Сначала заполните ХОТЯ БЫ ОДИН рейс!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (seatnum.Text == null || seatnum.Text == "")
            {
                MessageBox.Show("Укажите место!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (username.Items.Count < 1)
            {
                MessageBox.Show("Пользователи отсутствуют в базе данных! Сначала заполните ХОТЯ БЫ ОДНОГО пользователя!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            TicketsM temp = new TicketsM();

            temp._schedule_id     = Convert.ToInt32(scheduleNum.SelectedItem);
            temp._seatnum         = int.Parse(seatnum.Text);
            temp._carriage_number = Convert.ToInt32(carriageNum.SelectedItem);
            temp._user_id         = (from o in dbContext.UsersMs
                                     where o._login == username.Text
                                     select o._user_id).FirstOrDefault();

            // Сохранение нового юзера в БД
            if (isAdd)
            {
                // Добавляем объект в БД
                dbContext.TicketsMs.Local.Add(temp);

                // Очищаем поля
                scheduleNum.SelectedIndex = 0;
                seatnum.Text = null;
                carriageNum.SelectedIndex = 0;
                username.SelectedIndex    = 0;
            }
            else
            {
                // Получаем объект из БД по айди, который будем изменять
                int id     = SourceList[index]._ticket_id;
                var ticket = dbContext.TicketsMs.Local
                             .Single(o => o._ticket_id == id);

                // Изменяем, просто изменяя поля на поля объекта temp
                ticket._schedule_id     = temp._schedule_id;
                ticket._seatnum         = temp._seatnum;
                ticket._carriage_number = temp._carriage_number;
                ticket._user_id         = temp._user_id;

                // Говорим контексту БД, что данный объект был изменен
                dbContext.Entry(ticket).State = EntityState.Modified;
            }
            dbContext.SaveChanges();

            // Обновление списка
            SourceList = dbContext.TicketsMs.Local.ToBindingList();

            TableV.Current_DataGrid.ItemsSource = SourceList;
            TableV.Current_DataGrid.Items.Refresh();
        }
예제 #4
0
        // Verified
        public void AddEdit(bool isAdd)
        {
            this.isAdd = isAdd;
            // Показываем диалоговое окно
            DialogV dialogV    = new DialogV();
            Grid    dialogGrid = dialogV.Dialog_Grid;

            Button button = dialogV.Button_Execute;

            // Если это добавление
            if (isAdd)
            {
                scheduleNum.SelectedIndex = 0;
                carriageNum.SelectedIndex = 0;
                username.SelectedIndex    = 0;

                button.Content = App.Current.Resources["Text_Add"];
                index          = -1;
            }
            // Если это изменение
            else
            {
                // если ничего не выбрано в датагриде то ошибка
                // если выбрано больше 1 элемента то тоже ошибка
                if (TableV.Current_DataGrid.SelectedItems.Count < 1)
                {
                    MessageBox.Show("Выберите элемент для изменения!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                else if (TableV.Current_DataGrid.SelectedItems.Count > 1)
                {
                    MessageBox.Show("Можно выбрать для изменения не более ОДНОГО элемента за раз!", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                //индекс текущей выбранной строки в DataGrid
                //кастыль, но куда без кастылей?
                index = TableV.Current_DataGrid.SelectedIndex;

                //Если всё ок, вставляем данные для данного юзера в форму, который затем будем менять
                TicketsM temp = SourceList[index];

                scheduleNum.SelectedItem = temp._schedule_id;
                seatnum.Text             = temp._seatnum.ToString();
                carriageNum.SelectedItem = temp._carriage_number;
                username.SelectedItem    = temp.UsersM._login;

                button.Content = App.Current.Resources["Text_Edit"];
            }

            button.Click += new RoutedEventHandler(ExecuteAddEdit);

            // Вешаем элементы в Grid
            dialogGrid.Children.Add(ScheduleNum);
            dialogGrid.Children.Add(Seatnum);
            dialogGrid.Children.Add(CarriageNum);
            dialogGrid.Children.Add(Username);

            dialogGrid.Children.Add(scheduleNum);
            dialogGrid.Children.Add(seatnum);
            dialogGrid.Children.Add(carriageNum);
            dialogGrid.Children.Add(username);

            // Заполняем нижний Button текстом и вешаем локальный обработчик события нажатия

            dialogV.ShowDialog();

            // Очищаем Grid
            dialogGrid.Children.Remove(ScheduleNum);
            dialogGrid.Children.Remove(Seatnum);
            dialogGrid.Children.Remove(CarriageNum);
            dialogGrid.Children.Remove(Username);

            dialogGrid.Children.Remove(scheduleNum);
            dialogGrid.Children.Remove(seatnum);
            dialogGrid.Children.Remove(carriageNum);
            dialogGrid.Children.Remove(username);;

            scheduleNum.SelectedIndex = 0;
            seatnum.Text = null;
            carriageNum.SelectedIndex = 0;
            username.SelectedIndex    = 0;
        }