Артем Гавриленко 3 năm trước cách đây
mục cha
commit
65e2b5e3f2

+ 1 - 1
Kusach/AddDriverWindow.xaml.cs

@@ -37,7 +37,7 @@ namespace Kusach
             {
                 Drivers newDriver = new Drivers()
                 {
-                    IdDriver = cnt.db.Drivers.Count()+1,
+                    IdDriver = cnt.db.Drivers.Select(p => p.IdDriver).DefaultIfEmpty(0).Max() + 1,
                     IdTransport = Convert.ToInt32(IdTransportBox.Text),
                     Name = NameBox.Text,
                     Surname = SurnameBox.Text,

+ 1 - 1
Kusach/AddTransportWindow.xaml.cs

@@ -32,7 +32,7 @@ namespace Kusach
             {
                 Transport newTransport = new Transport()
                 {
-                    IdTransport = cnt.db.Transport.Count() + 1,
+                    IdTransport = cnt.db.Transport.Select(p => p.IdTransport).DefaultIfEmpty(0).Max() + 1,
                     NameOfTransport = NameOfTransportBox.Text,
                     NumberPlate = NumberPlateBox.Text
                 };

+ 1 - 1
Kusach/AddUserWindow.xaml.cs

@@ -24,7 +24,7 @@ namespace Kusach
             {
                 Dispatcher newUser = new Dispatcher()
                 {
-                    IdDispatcher = cnt.db.Dispatcher.Count() + 1,
+                    IdDispatcher = cnt.db.Dispatcher.Select(p => p.IdDispatcher).DefaultIfEmpty(0).Max() + 1,
                     Login = logbox.Text,
                     Password = passbox.Text
                 };

+ 1 - 2
Kusach/RegWindow.xaml.cs

@@ -26,7 +26,7 @@ namespace Kusach
                 {
                     Dispatcher newUser = new Dispatcher()
                     {
-                        IdDispatcher = cnt.db.Dispatcher.Count() + 1,
+                        IdDispatcher = cnt.db.Dispatcher.Select(p => p.IdDispatcher).DefaultIfEmpty(0).Max() + 1,
                         Login = logbox.Text,
                         Password = Encrypt.GetHash(passbox.Text),
                         Surname = FNameBox.Text,
@@ -47,7 +47,6 @@ namespace Kusach
             {
                 MessageBox.Show($"Произошла ошибка. : {ex}");
             }
-            
         }
 
         private void BackButton_Click(object sender, RoutedEventArgs e)

+ 3 - 3
Kusach/Windows/AddPointToRouteWindow.xaml.cs

@@ -19,16 +19,16 @@ namespace Kusach.Windows
     /// </summary>
     public partial class AddPointToRouteWindow : Window
     {
-        int routeId;
         public AddPointToRouteWindow(int id)
         {
             InitializeComponent();
-            routeId = id;
             PointsListDataGrid.ItemsSource = cnt.db.Points.ToList();
         }
+        public int pointId = -1;
         private void PointsDataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            MessageBox.Show("cell: " + ((Points)PointsListDataGrid.SelectedItem).IdPoint);
+            pointId = ((Points)PointsListDataGrid.SelectedItem).IdPoint;
+            this.Close();
         }
 
         private void BackButton_Click(object sender, RoutedEventArgs e)

+ 5 - 1
Kusach/Windows/AddPointWindow.xaml

@@ -56,6 +56,10 @@
             VerticalAlignment="Top" 
             Height="40" 
             Width="120" 
-            Click="BackButton_Click"/>
+            Click="BackButton_Click"
+            IsDefault="True"/>
+        <Border 
+            BorderBrush="Black" 
+            BorderThickness="2"/>
     </Grid>
 </Window>

+ 8 - 7
Kusach/Windows/AddPointWindow.xaml.cs

@@ -19,11 +19,11 @@ namespace Kusach
     /// </summary>
     public partial class AddPointWindow : Window
     {
-        int RouteId;
+        int routeId, pointId;
         public AddPointWindow(int id = -1)
         {
             InitializeComponent();
-            RouteId = id;
+            routeId = id;
         }
 
         private void BackButton_Click(object sender, RoutedEventArgs e)
@@ -39,21 +39,22 @@ namespace Kusach
             {
                 try
                 {
+                    pointId = cnt.db.Points.Select(p => p.IdPoint).DefaultIfEmpty(0).Max() + 1;
                     Points newPoint = new Points()
                     {
-                        IdPoint = cnt.db.Points.Count() + 1,
+                        IdPoint = pointId,
                         Name = NameBox.Text,
                         location = LocationBox.Text
                     };
                     cnt.db.Points.Add(newPoint);
                     cnt.db.SaveChanges();
-                    if (RouteId != -1)
+                    if (routeId != -1)
                     {
                         PointsList newPointRoute = new PointsList()
                         {
-                            Id = cnt.db.PointsList.Count() + 1,
-                            IdPoint = cnt.db.Points.Count(),
-                            IdRoute = RouteId
+                            Id = cnt.db.PointsList.Select(p => p.Id).DefaultIfEmpty(0).Max() + 1,
+                            IdPoint = pointId,
+                            IdRoute = routeId
                         };
                         cnt.db.PointsList.Add(newPointRoute);
                     }

+ 0 - 1
Kusach/Windows/AddRouteWindow.xaml

@@ -50,6 +50,5 @@
         <Border 
             BorderBrush="Black" 
             BorderThickness="2"/>
-
     </Grid>
 </Window>

+ 1 - 1
Kusach/Windows/AddRouteWindow.xaml.cs

@@ -44,7 +44,7 @@ namespace Kusach
                 {
                     Routes newRoute = new Routes()
                     {
-                        IdRoute = cnt.db.Routes.Count() + 1,
+                        IdRoute = cnt.db.Routes.Select(p => p.IdRoute).DefaultIfEmpty(0).Max() + 1,
                         Name = RouteNameBox.Text
                     };
                     cnt.db.Routes.Add(newRoute);

+ 1 - 1
Kusach/Windows/RouteEditWindow.xaml

@@ -15,7 +15,7 @@
             <RowDefinition Height="354*"/>
         </Grid.RowDefinitions>
         <Button
-            Content="Выход" 
+            Content="Сохранить&#xD;&#xA; и выйти" 
             HorizontalAlignment="Left" 
             VerticalAlignment="Top" 
             Margin="10,10,0,0" 

+ 28 - 4
Kusach/Windows/RouteEditWindow.xaml.cs

@@ -27,7 +27,6 @@ namespace Kusach.Windows
             RouteNameBox.Text = cnt.db.Routes.Where(item => item.IdRoute == routeId).Select(item => item.Name).FirstOrDefault();
             PointsListDataGrid.ItemsSource = cnt.db.PointsList.Where(item => item.IdRoute == routeId).ToList();
             DriversListDataGrid.ItemsSource = cnt.db.DriversList.Where(item => item.IdRoute == routeId).ToList();
-
         }
         private void PointsDataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
@@ -48,6 +47,7 @@ namespace Kusach.Windows
             {
                 cnt.db.PointsList.Remove(cnt.db.PointsList.Where(item => item.IdRoute == routeId && item.IdPoint == ((PointsList)PointsListDataGrid.SelectedItem).IdPoint).FirstOrDefault());
                 cnt.db.SaveChanges();
+                update();
             }
             catch
             {
@@ -62,13 +62,37 @@ namespace Kusach.Windows
 
         private void AddFromListPoint_Click(object sender, RoutedEventArgs e)
         {
-            AddPointToRouteWindow aptrw = new AddPointToRouteWindow(routeId); 
+            AddPointToRouteWindow aptrw = new AddPointToRouteWindow(routeId);
             aptrw.ShowDialog();
+            int pointId = aptrw.pointId;
+            if (pointId != -1)
+            {
+                try
+                {
+                    PointsList newAddPointToRoute = new PointsList()
+                    {
+                        Id = cnt.db.PointsList.Select(p => p.Id).DefaultIfEmpty(0).Max()+1,
+                        IdPoint = pointId,
+                        IdRoute = routeId
+                    };
+                    cnt.db.PointsList.Add(newAddPointToRoute);
+                    cnt.db.SaveChanges();
+                    update();
+                    MessageBox.Show("Точка успешно добавлена");
+                }
+                catch
+                {
+                    MessageBox.Show("Ошибка добавления записи");
+                }
+            }
         }
-
-        private void UpdatePoints_Click(object sender, RoutedEventArgs e)
+        void update()
         {
             PointsListDataGrid.ItemsSource = cnt.db.PointsList.Where(item => item.IdRoute == routeId).ToList();
         }
+        private void UpdatePoints_Click(object sender, RoutedEventArgs e)
+        {
+            update();
+        }
     }
 }