コード例 #1
0
ファイル: BookingDBworker.cs プロジェクト: Saroko-dnd/My_DZ
 /// <summary>
 /// Обращается к базе данных и находит в ней поезд, соответствующий переданному в параметре, и уменьшает у него количество билетов на 1.
 /// После окончания этой операции вызывает у класса MainWindow метод BookingReady.
 /// </summary>
 /// <param name="CurrentTrain"></param>
 public static void BookTicket(Train CurrentTrain)
 {
     using (ContextForBookingDataBase BookingDBcontext = new ContextForBookingDataBase(NamesOfVariables.ConnectionStringName))
     {
         BookingDBcontext.ListOfTrains.First((res) => res.TrainName == CurrentTrain.TrainName).AmountOfFreeTickets = CurrentTrain.AmountOfFreeTickets;
         BookingDBcontext.SaveChanges();
         Application.Current.Dispatcher.Invoke(new Action(() => ApplicationMainWindow.BookingReady()));
     }
 }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: Saroko-dnd/My_DZ
 private void ShowInfoAboutFoundTrainToUser(Train FoundTrain)
 {
     if (FoundTrain != null)
     {
         ProgramStateLabel.Foreground = Brushes.Green;
         ProgramStateLabel.Content = Texts.LabelProgramStateReady;
         CurrentTrainInfo = FoundTrain.TrainName + " " + FoundTrain.Stations.First().StationName + " - " + FoundTrain.Stations.Last().StationName;
         TrainInfoLabel.Content = CurrentTrainInfo;
         TrainInfoLabel.Foreground = Brushes.Blue;
         AmountOfTicketsLabel.Content = FoundTrain.AmountOfFreeTickets.ToString();
         AmountOfTicketsLabel.Foreground = Brushes.Blue;
         if (CurrentTrain.AmountOfFreeTickets > 0)
         {
             BookTicketButton.Visibility = Visibility.Visible;
         }
     }
     else
     {
         ProgramStateLabel.Foreground = Brushes.Red;
         ProgramStateLabel.Content = Texts.LabelProgramStateTrainNotFound;
         TrainInfoLabel.Content = Texts.LabelsForValuesErrorText;
         TrainInfoLabel.Foreground = Brushes.Red;
         AmountOfTicketsLabel.Content = Texts.LabelsForValuesErrorText;
         AmountOfTicketsLabel.Foreground = Brushes.Red;
     }
 }
コード例 #3
0
ファイル: MainWindow.xaml.cs プロジェクト: Saroko-dnd/My_DZ
        /// <summary>
        /// Оповещаетпользователя о результатах поиска поезда.  (Совершает необходимые изменения визуальных элементов главного окна приложения)
        /// Кроме того 'освобождает' программу для следующего запроса на поиск поезда.
        /// </summary>
        /// <param name="FoundTrain"></param>
        public void SearchOver(Train FoundTrain, bool DepartureStationFound, bool DestinationStationFound)
        {
            CurrentTrain = FoundTrain;
            Storyboard StoryBoardForSearchAnimation = null;
            StoryBoardForSearchAnimation = this.FindResource("LoadingAnimationStoryBoard") as Storyboard;
            StoryBoardForSearchAnimation.Stop();
            SearchDataAnimatedEllipse.Visibility = Visibility.Collapsed;

            if (!DepartureStationFound)
            {
                DepartureStationNotFoundLabel.Visibility = Visibility.Visible;
            }
            else
            {
                DepartureStationNotFoundLabel.Visibility = Visibility.Collapsed;
            }
            if (!DestinationStationFound)
            {
                DestinationStationNotFoundLabel.Visibility = Visibility.Visible;
            }
            else
            {
                DestinationStationNotFoundLabel.Visibility = Visibility.Collapsed;
            }

            ShowInfoAboutFoundTrainToUser(FoundTrain);
            ProgramBusy = false;
        }