Imagara %!s(int64=2) %!d(string=hai) anos
pai
achega
2caff9f073

+ 16 - 14
RaspisKusach/ErrorWindow.xaml

@@ -6,30 +6,32 @@
         xmlns:local="clr-namespace:RaspisKusach"
         mc:Ignorable="d"
         Title="ErrorWindow" 
-        MinHeight="120" 
-        Height="120"
-        Width="300" 
+        Height="100"
+        Width="300"
         WindowStartupLocation="CenterScreen" 
         WindowStyle="None" 
         ResizeMode="NoResize">
     <Border Background="{StaticResource ItemColor}"
             MouseDown="Border_MouseDown">
-        <StackPanel>
+        <Grid>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="auto"/>
+                <RowDefinition Height="auto"/>
+            </Grid.RowDefinitions>
             <TextBlock Name="ErrorLabel" 
-               Text="Ошибка." 
-               TextWrapping="Wrap"
-               HorizontalAlignment="Center" 
-               Margin="19,10,19,0" 
-               VerticalAlignment="Top" 
-               Width="262">
+                       Text="Ошибка." 
+                       TextWrapping="Wrap"
+                       HorizontalAlignment="Center"
+                       VerticalAlignment="Center" 
+                       Margin="10,5,10,5">
             </TextBlock>
-            <Button Content="Закрыть" 
-                VerticalAlignment="Bottom" 
+            <Button Grid.Row="1"
+                Content="Закрыть" 
+                VerticalAlignment="Center" 
                 HorizontalAlignment="Center" 
                 Height="30" 
                 Width="130" 
-                Margin="0,0,0,15" 
                 Click="BackClick"/>
-        </StackPanel>
+        </Grid>
     </Border>
 </Window>

+ 1 - 0
RaspisKusach/ErrorWindow.xaml.cs

@@ -8,6 +8,7 @@ namespace RaspisKusach
         {
             InitializeComponent();
             ErrorLabel.Text = error;
+            this.SizeToContent = SizeToContent.Height;
         }
         private void BackClick(object sender, RoutedEventArgs e)
         {

+ 1 - 1
RaspisKusach/Pages/MenuPage.xaml

@@ -9,7 +9,7 @@
       d:DesignWidth="792"
       Title="Меню">
     
-    <Grid>
+    <Grid Background="White">
         <Grid.RowDefinitions>
             <RowDefinition/>
             <RowDefinition Height="50"/>

+ 0 - 1
RaspisKusach/Pages/SchedulePage.xaml

@@ -63,7 +63,6 @@
                  BorderBrush="{x:Null}"
                  ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                  ScrollViewer.VerticalScrollBarVisibility="Hidden">
-            <ScrollBar></ScrollBar>
             <ListBox.ItemTemplate>
                 <DataTemplate>
                     <Border Width="{Binding Path=ActualWidth, Mode=OneWay, ElementName=TripsListBox, Converter={StaticResource math}, ConverterParameter=x-15}"

+ 27 - 31
RaspisKusach/Pages/TripInfoPage.xaml

@@ -73,7 +73,7 @@
 
 
         <!--DOWN-->
-        <ListBox Name="ListBox"
+        <ListBox Name="CarriageListBox"
                  Grid.Row="1"
                  BorderBrush="{x:Null}"
                  ScrollViewer.HorizontalScrollBarVisibility="Disabled">
@@ -81,7 +81,7 @@
             <ListBox.ItemTemplate>
                 <DataTemplate>
                     <Border Height="120"
-                            Width="{Binding Path=ActualWidth, Mode=OneWay, ElementName=ListBox, Converter={StaticResource math}, ConverterParameter=x-15}"
+                            Width="{Binding Path=ActualWidth, Mode=OneWay, ElementName=CarriageListBox, Converter={StaticResource math}, ConverterParameter=x-15}"
                             CornerRadius="10"
                             Background="{StaticResource ItemColor}"
                             Margin="0,2,0,2"
@@ -107,35 +107,31 @@
                             </StackPanel>
 
                             <!--DOWN-->
-                            <Grid Grid.Row="1" Grid.Column="0"
-                                  Background="{x:Null}">
-                                <Grid Background="{x:Null}">
-                                    <Grid.ColumnDefinitions>
-                                        <ColumnDefinition/> 
-                                        <ColumnDefinition/>
-                                        <ColumnDefinition/>
-                                    </Grid.ColumnDefinitions>
-
-                                    <StackPanel>
-                                        <Label Content="{Binding stationDeparture}">
-                                        </Label>
-                                        <Label Content="{Binding timeDeparture}">
-                                        </Label>
-                                    </StackPanel>
-
-                                    <Label Content="{Binding timeBetween}" 
-                                           Grid.Column="1">
-                                    </Label>
-
-                                    <StackPanel Grid.Column="2">
-                                        <Label Content="{Binding stationArrival}">
-
-                                        </Label>
-                                        <Label Content="{Binding timeArrival}">
-
-                                        </Label>
-                                    </StackPanel>
-                                </Grid>
+                            <Grid Grid.Row="1">
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition Width="*"/>
+                                    <ColumnDefinition Width="*"/>
+                                    <ColumnDefinition Width="*"/>
+                                </Grid.ColumnDefinitions>
+                                <StackPanel>
+                                    <Label Content="Свободно мест: "/>
+                                    <Label Content="10"/>
+                                </StackPanel>
+                                <StackPanel Grid.Column="1">
+                                    <Label Content="Класс: "/>
+                                    <Label Content="Люкс"/>
+                                </StackPanel>
+
+
+                                <Label Grid.Column="1"
+                                       Content=""/>
+
+
+                                <Button Grid.Column="2"
+                                        Content="Купить"
+                                        Margin="10">
+                                    
+                                </Button>
                             </Grid>
                         </Grid>
                     </Border>

+ 46 - 0
RaspisKusach/Pages/TripInfoPage.xaml.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Globalization;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
@@ -25,7 +26,52 @@ namespace RaspisKusach.Pages
                 stationsList += rs.Stations.Location == Functions.GetDepartureStationLocation(trip) ? rs.Stations.Name : $"{rs.Stations.Name} → ";
 
             Direction.Content = stationsList;
+            UpdateCarriagesList();
+        }
+        private void UpdateCarriagesList()
+        {
+
+            Stations arrivalStation = cnt.db.Stations.Where(item => item.Location == StationArrivalComboBox.Text).FirstOrDefault(),
+                departureStation = cnt.db.Stations.Where(item => item.Location == StationDepartureComboBox.Text).FirstOrDefault();
+            if (arrivalStation == null || departureStation == null)
+                return;
+
+            List<TripClass> routeList = new List<TripClass>();
+
+            foreach (Trips trip in cnt.db.Trips)
+            {
+                if (cnt.db.RoutesStations.Select(item => item.Stations.Location + " " + item.IdRoute).Contains(arrivalStation.Location + " " + trip.IdRoute)
+                    && cnt.db.RoutesStations.Select(item => item.Stations.Location + " " + item.IdRoute).Contains(departureStation.Location + " " + trip.IdRoute)
+                    && Functions.GetArrivalTime(arrivalStation, trip) > Functions.GetDepartureTime(departureStation, trip)
+                    && (Functions.GetArrivalTime(arrivalStation, trip).ToShortDateString() == ArrivalDate.Text
+                        || ArrivalDate.Text == null
+                        || ArrivalDate.Text.Trim() == ""))
+                {
+                    TripClass rt = new TripClass();
+                    rt.trip = trip;
+                    rt.trainCategory = trip.Trains.Category;
+                    rt.stationDeparture = StationDepartureComboBox.Text;
+                    rt.stationArrival = StationArrivalComboBox.Text;
+                    rt.timeArrival = Functions.GetArrivalTime(arrivalStation, trip).ToString(new CultureInfo("ru-RU"));
+                    rt.timeDeparture = Functions.GetDepartureTime(departureStation, trip).ToString(new CultureInfo("ru-RU"));
 
+                    rt.timeBetween = Functions.GetArrivalTime(arrivalStation, trip) - Functions.GetDepartureTime(departureStation, trip);
+
+                    routeList.Add(rt);
+                }
+            }
+
+            CarriageListBox.ItemsSource = routeList;
+        }
+        public class TripClass
+        {
+            public Carriages carriage { get; set; }
+            public string trainCategory { get; set; }
+            public string stationDeparture { get; set; }
+            public string stationArrival { get; set; }
+            public string timeDeparture { get; set; }
+            public string timeArrival { get; set; }
+            public TimeSpan timeBetween { get; set; }
         }
 
     }