Артем Гавриленко 3 年之前
父節點
當前提交
53e532f4b2

+ 1 - 0
Kusach/Dispatcher.cs

@@ -30,6 +30,7 @@ namespace Kusach
         public string PhoneNumber { get; set; }
         public string Email { get; set; }
         public int Permission { get; set; }
+        public string ProfileImgSource { get; set; }
     
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
         public virtual ICollection<RouteList> RouteList { get; set; }

+ 5 - 3
Kusach/EDM.edmx

@@ -4,7 +4,7 @@
   <edmx:Runtime>
     <!-- SSDL content -->
     <edmx:StorageModels>
-      <Schema Namespace="Хранилище EDMModel" Provider="System.Data.SqlClient" ProviderManifestToken="2012" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
+    <Schema Namespace="Хранилище EDMModel" Provider="System.Data.SqlClient" ProviderManifestToken="2012" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
         <EntityType Name="Dispatcher">
           <Key>
             <PropertyRef Name="IdDispatcher" />
@@ -19,6 +19,7 @@
           <Property Name="PhoneNumber" Type="nvarchar" MaxLength="10" Nullable="false" />
           <Property Name="Email" Type="nvarchar" MaxLength="50" Nullable="false" />
           <Property Name="Permission" Type="int" Nullable="false" />
+          <Property Name="ProfileImgSource" Type="nvarchar(max)" />
         </EntityType>
         <EntityType Name="Drivers">
           <Key>
@@ -210,8 +211,7 @@
             <End Role="Drivers" EntitySet="Drivers" />
           </AssociationSet>
         </EntityContainer>
-      </Schema>
-    </edmx:StorageModels>
+      </Schema></edmx:StorageModels>
     <!-- CSDL content -->
     <edmx:ConceptualModels>
       <Schema Namespace="EDMModel" Alias="Self" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
@@ -230,6 +230,7 @@
           <Property Name="Email" Type="String" MaxLength="50" FixedLength="false" Unicode="true" Nullable="false" />
           <Property Name="Permission" Type="Int32" Nullable="false" />
           <NavigationProperty Name="RouteList" Relationship="Self.FK__RouteList__IdRou__6383C8BA" FromRole="Dispatcher" ToRole="RouteList" />
+          <Property Name="ProfileImgSource" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />
         </EntityType>
         <EntityType Name="Drivers">
           <Key>
@@ -443,6 +444,7 @@
           <EntitySetMapping Name="Dispatcher">
             <EntityTypeMapping TypeName="EDMModel.Dispatcher">
               <MappingFragment StoreEntitySet="Dispatcher">
+                <ScalarProperty Name="ProfileImgSource" ColumnName="ProfileImgSource" />
                 <ScalarProperty Name="IdDispatcher" ColumnName="IdDispatcher" />
                 <ScalarProperty Name="Login" ColumnName="Login" />
                 <ScalarProperty Name="Password" ColumnName="Password" />

二進制
Kusach/Images/StandartImage.png


二進制
Kusach/Images/pesik.png


+ 1 - 1
Kusach/Kusach.csproj

@@ -299,7 +299,7 @@
       <DependentUpon>EDM.edmx</DependentUpon>
       <LastGenOutput>EDM.cs</LastGenOutput>
     </Content>
-    <Resource Include="Images\pesik.png" />
+    <Resource Include="Images\StandartImage.png" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

+ 1 - 0
Kusach/MainWindow.xaml

@@ -59,6 +59,7 @@
                 Height="40"
                 Click="VehButton_Click"/>
                 <Button
+                Name="DispatchersButton"
                 Content="Пользователи"
                 Height="40"
                 Click="UsersButton_Click"/>

+ 4 - 1
Kusach/MainWindow.xaml.cs

@@ -10,8 +10,11 @@ namespace Kusach
         public MainWindow()
         {
             InitializeComponent();
+            if (profile.Permission != 0)
+            {
+                DispatchersButton.Visibility = Visibility.Collapsed;
+            }
         }
-        
         private void BackButton_Click(object sender, RoutedEventArgs e)
         {
             LogWindow lw = new LogWindow();

+ 1 - 4
Kusach/Pages/DispatcherListPage.xaml

@@ -26,15 +26,12 @@
                 Text="Поиск..." 
                 Width="120"/>
             <Button
+                Name="CreateButton"
                 Width="120"
                 Content="Создать"
                 Click="AddDispatcherButton_Click"/>
             <Button
                 Width="120"
-                Content="Удалить"
-                Click="DeleteDispatcherButton_Click"/>
-            <Button
-                Width="120"
                 Content="Обновить"
                 Click="UpdateDispatcherButton_Click"/>
         </StackPanel>

+ 2 - 5
Kusach/Pages/DispatcherListPage.xaml.cs

@@ -24,6 +24,8 @@ namespace Kusach.Pages
         {
             InitializeComponent();
             DispatcherList.ItemsSource = cnt.db.Dispatcher.ToList();
+            if (profile.Permission != 0)
+                CreateButton.Visibility = Visibility.Collapsed;
         }
         private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
@@ -54,11 +56,6 @@ namespace Kusach.Pages
             
         }
 
-        private void DeleteDispatcherButton_Click(object sender, RoutedEventArgs e)
-        {
-
-        }
-
         private void UpdateDispatcherButton_Click(object sender, RoutedEventArgs e)
         {
             DispatcherList.ItemsSource = cnt.db.Dispatcher.ToList();

+ 1 - 4
Kusach/Pages/DriversListPage.xaml

@@ -26,15 +26,12 @@
                 Text="Поиск..." 
                 Width="120"/>
             <Button
+                Name="CreateButton"
                 Width="120"
                 Content="Создать"
                 Click="AddDriverButton_Click"/>
             <Button
                 Width="120"
-                Content="Удалить"
-                Click="DeleteDriversButton_Click"/>
-            <Button
-                Width="120"
                 Content="Обновить"
                 Click="UpdateDriversButton_Click"/>
         </StackPanel>

+ 7 - 7
Kusach/Pages/DriversListPage.xaml.cs

@@ -14,11 +14,16 @@ namespace Kusach.Pages
         {
             InitializeComponent();
             DriversList.ItemsSource = cnt.db.Drivers.ToList();
+            if (profile.Permission != 0)
+                CreateButton.Visibility = Visibility.Collapsed;
         }
         private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            Windows.DriverEditWindow dew = new Windows.DriverEditWindow(((Drivers)DriversList.SelectedItem).IdDriver);
-            dew.Show();
+            if (profile.Permission == 0)
+            {
+                Windows.DriverEditWindow dew = new Windows.DriverEditWindow(((Drivers)DriversList.SelectedItem).IdDriver);
+                dew.Show();
+            }
         }
 
         #region Поиск
@@ -46,11 +51,6 @@ namespace Kusach.Pages
             adw.Show();
         }
 
-        private void DeleteDriversButton_Click(object sender, RoutedEventArgs e)
-        {
-
-        }
-
         private void UpdateDriversButton_Click(object sender, RoutedEventArgs e)
         {
             DriversList.ItemsSource = cnt.db.Drivers.ToList();

+ 1 - 4
Kusach/Pages/PointsListPage.xaml

@@ -26,15 +26,12 @@
                 Text="Поиск..." 
                 Width="120"/>
             <Button
+                Name="CreateButton"
                 Width="120"
                 Content="Создать"
                 Click="AddPointButton_Click"/>
             <Button
                 Width="120"
-                Content="Удалить"
-                Click="DeletePointsButton_Click"/>
-            <Button
-                Width="120"
                 Content="Обновить"
                 Click="UpdatePointsButton_Click"/>
         </StackPanel>

+ 7 - 7
Kusach/Pages/PointsListPage.xaml.cs

@@ -24,11 +24,16 @@ namespace Kusach.Pages
         {
             InitializeComponent();
             PointsList.ItemsSource = cnt.db.Points.ToList();
+            if (profile.Permission != 0)
+                CreateButton.Visibility = Visibility.Collapsed;
         }
         private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            Windows.PointEditWindow dew = new Windows.PointEditWindow(((Points)PointsList.SelectedItem).IdPoint);
-            dew.Show();
+            if (profile.Permission == 0)
+            {
+                Windows.PointEditWindow dew = new Windows.PointEditWindow(((Points)PointsList.SelectedItem).IdPoint);
+                dew.Show();
+            }
         }
 
         #region Поиск
@@ -56,11 +61,6 @@ namespace Kusach.Pages
             adw.Show();
         }
 
-        private void DeletePointsButton_Click(object sender, RoutedEventArgs e)
-        {
-
-        }
-
         private void UpdatePointsButton_Click(object sender, RoutedEventArgs e)
         {
             PointsList.ItemsSource = cnt.db.Points.ToList();

+ 4 - 3
Kusach/Pages/ProfilePage.xaml

@@ -8,7 +8,6 @@
       d:DesignHeight="419"
       d:DesignWidth="692"
       Title="ProfilePage">
-
     <Grid Background="White">
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="45*"/>
@@ -21,18 +20,20 @@
                 VerticalAlignment="Top"
                 HorizontalAlignment="Center">
                 <Image 
+                    Name="ProfileImg"
                     HorizontalAlignment="Left" 
                     Height="150"
                     Width="150"
                     VerticalAlignment="Top" 
                     Margin="0,20,0,20"
-                    Source="/Kusach;component/Images/pesik.png"/>
+                    Source="/Kusach;component/Images/StandartImage.png"/>
             <Button 
                 Content="Изменить"
                 HorizontalAlignment="Left" 
                 Height="30"
                 Width="150"
-                VerticalAlignment="Top"/>
+                VerticalAlignment="Top"
+                Click="EditImageButton_Click"/>
         </StackPanel>
             <Border 
                 BorderBrush="Black" 

+ 25 - 0
Kusach/Pages/ProfilePage.xaml.cs

@@ -23,6 +23,8 @@ namespace Kusach.Pages
         public ProfilePage()
         {
             InitializeComponent();
+            if(cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).Select(item => item.ProfileImgSource).FirstOrDefault() != null)
+            ProfileImg.Source = new BitmapImage(new Uri(cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).Select(item => item.ProfileImgSource).FirstOrDefault()));
             NameSurnameBox.Content = cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).Select(item => item.Name + " " + item.Surname).FirstOrDefault();
             DateTime Birthday = cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).Select(item => item.Birthday).FirstOrDefault();
             BirthdayBox.Content = Birthday.ToLongDateString();
@@ -30,5 +32,28 @@ namespace Kusach.Pages
             PhoneNumBox.Content = "+7(" + phone.Substring(0, 3) + ")" + phone.Substring(3, 3) + "-" + phone.Substring(6, 2) + "-" + phone.Substring(8, 2);
             EmailBox.Content = cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).Select(item => item.Email).FirstOrDefault();
         }
+        private void EditImageButton_Click(object sender, RoutedEventArgs e)
+        {
+            // Создаем OpenFileDialog 
+            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
+
+            // Устанавливаем фильтры и стандартное расширение файла
+            dlg.DefaultExt = ".png";
+            dlg.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg";
+
+            // Отображаем OpenFileDialog
+            Nullable<bool> result = dlg.ShowDialog();
+
+            // Получаем и устанавливаем новое изображение 
+            if (result == true)
+            {
+                // Open document 
+                string filename = dlg.FileName;
+                ProfileImg.Source = new BitmapImage(new Uri(filename));
+                Dispatcher dispatcher = cnt.db.Dispatcher.Where(item => item.IdDispatcher == profile.DispatcherId).FirstOrDefault();
+                dispatcher.ProfileImgSource = filename;
+                cnt.db.SaveChanges();
+            }
+        }
     }
 }

+ 1 - 4
Kusach/Pages/RoutesListPage.xaml

@@ -26,15 +26,12 @@
                 Text="Поиск..." 
                 Width="120"/>
             <Button
+                Name="CreateButton"
                 Width="120"
                 Content="Создать"
                 Click="AddRouteButton_Click"/>
             <Button
                 Width="120"
-                Content="Удалить"
-                Click="DeleteRouteButton_Click"/>
-            <Button
-                Width="120"
                 Content="Обновить"
                 Click="UpdateRoutesButton_Click"/>
         </StackPanel>

+ 7 - 8
Kusach/Pages/RoutesListPage.xaml.cs

@@ -14,11 +14,16 @@ namespace Kusach.Pages
         {
             InitializeComponent();
             RoutesList.ItemsSource = cnt.db.Routes.ToList();
+            if (profile.Permission != 0)
+                CreateButton.Visibility = Visibility.Collapsed;
         }
         private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            Windows.RouteEditWindow rew = new Windows.RouteEditWindow(((Routes)RoutesList.SelectedItem).IdRoute);
-            rew.Show();
+            if (profile.Permission == 0)
+            {
+                Windows.RouteEditWindow rew = new Windows.RouteEditWindow(((Routes)RoutesList.SelectedItem).IdRoute);
+                rew.Show();
+            }
         }
 
         #region Поиск
@@ -45,12 +50,6 @@ namespace Kusach.Pages
             AddRouteWindow arw = new AddRouteWindow();
             arw.Show();
         }
-
-        private void DeleteRouteButton_Click(object sender, RoutedEventArgs e)
-        {
-
-        }
-
         private void UpdateRoutesButton_Click(object sender, RoutedEventArgs e)
         {
             RoutesList.ItemsSource = cnt.db.Routes.ToList();

+ 1 - 4
Kusach/Pages/TransportListPage.xaml

@@ -26,15 +26,12 @@
                 Text="Поиск..." 
                 Width="120"/>
             <Button
+                Name="CreateButton"
                 Width="120"
                 Content="Создать"
                 Click="AddTransportButton_Click"/>
             <Button
                 Width="120"
-                Content="Удалить"
-                Click="DeleteTransportButton_Click"/>
-            <Button
-                Width="120"
                 Content="Обновить"
                 Click="UpdateTransportButton_Click"/>
         </StackPanel>

+ 9 - 10
Kusach/Pages/TransportListPage.xaml.cs

@@ -14,15 +14,20 @@ namespace Kusach.Pages
         {
             InitializeComponent();
             TransportList.ItemsSource = cnt.db.Transport.ToList();
+            if (profile.Permission != 0)
+                CreateButton.Visibility = Visibility.Collapsed;
         }
         private void DataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            Windows.TransportEditWindow tew = new Windows.TransportEditWindow(((Transport)TransportList.SelectedItem).IdTransport);
-            tew.Show();
+            if (profile.Permission == 0)
+            {
+                Windows.TransportEditWindow tew = new Windows.TransportEditWindow(((Transport)TransportList.SelectedItem).IdTransport);
+                tew.Show();
+            }
         }
 
-        #region Поиск
-        private void SearchBoxPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+            #region Поиск
+            private void SearchBoxPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
         {
             if (SearchBox.Text == "Поиск...")
                 SearchBox.Text = "";
@@ -45,12 +50,6 @@ namespace Kusach.Pages
             AddTransportWindow atw = new AddTransportWindow();
             atw.Show();
         }
-
-        private void DeleteTransportButton_Click(object sender, RoutedEventArgs e)
-        {
-
-        }
-
         private void UpdateTransportButton_Click(object sender, RoutedEventArgs e)
         {
             TransportList.ItemsSource = cnt.db.Transport.ToList();

+ 2 - 0
Kusach/Windows/RegWindow.xaml.cs

@@ -43,6 +43,8 @@ namespace Kusach
                     };
                     cnt.db.Dispatcher.Add(newUser);
                     cnt.db.SaveChanges();
+                    profile.DispatcherId = cnt.db.Dispatcher.First(item => item.Login == logbox.Text).IdDispatcher;
+                    profile.Permission = cnt.db.Dispatcher.First(item => item.Login == logbox.Text).Permission;
                     MessageBox.Show("Вы успешно зарегистрировались");
                     MainWindow mw = new MainWindow();
                     mw.Show();

+ 5 - 0
Kusach/Windows/RouteEditWindow.xaml

@@ -89,6 +89,7 @@
                                 Click="Update_Click">
                             </Button>
                             <Button
+                                Name="CreateButton"
                                 Content="Создать"
                                 Width="90"
                                 Height="30"
@@ -96,6 +97,7 @@
                                 Click="AddPoint_Click">
                             </Button>
                             <Button
+                                Name="AddButton"
                                 Content="Добавить"
                                 Width="90"
                                 Height="30"
@@ -103,6 +105,7 @@
                                 Click="AddFromListPoint_Click">
                             </Button>
                             <Button
+                                Name="RemoveButton"
                                 Visibility="Visible"
                                 Content="Удалить"
                                 Grid.Row="1"
@@ -177,6 +180,7 @@
                                 Click="Update_Click">
                             </Button>
                             <Button
+                                Name="CreateButtonDrivers"
                                 Content="Создать"
                                 Width="90"
                                 Height="30"
@@ -184,6 +188,7 @@
                                 Click="AddDriver_Click">
                             </Button>
                             <Button
+                                Name="AddButtonDrivers"
                                 Content="Добавить"
                                 Width="90"
                                 Height="30"

+ 20 - 5
Kusach/Windows/RouteEditWindow.xaml.cs

@@ -15,17 +15,32 @@ namespace Kusach.Windows
             InitializeComponent();
             routeId = id;
             RouteNameBox.Text = Functions.GetRouteName(routeId);
+            if (profile.Permission != 0)
+            {
+                RouteNameBox.IsEnabled = false;
+                AddButton.Visibility = Visibility.Collapsed;
+                CreateButton.Visibility = Visibility.Collapsed;
+                RemoveButton.Visibility = Visibility.Collapsed;
+                AddButtonDrivers.Visibility = Visibility.Collapsed;
+                CreateButtonDrivers.Visibility = Visibility.Collapsed;
+            }
             Update();
         }
         private void PointsDataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            PointEditWindow pew = new PointEditWindow(((PointsList)PointsListDataGrid.SelectedItem).IdPoint);
-            pew.ShowDialog();
+            if (profile.Permission == 0)
+            {
+                PointEditWindow pew = new PointEditWindow(((PointsList)PointsListDataGrid.SelectedItem).IdPoint);
+                pew.ShowDialog();
+            }
         }
         private void DriversDataGridRow_MouseDoubleClick(object sender, MouseButtonEventArgs e)
         {
-            DriverEditWindow dew = new DriverEditWindow(((DriversList)DriversListDataGrid.SelectedItem).IdDriver);
-            dew.ShowDialog();
+            if (profile.Permission == 0)
+            {
+                DriverEditWindow dew = new DriverEditWindow(((DriversList)DriversListDataGrid.SelectedItem).IdDriver);
+                dew.ShowDialog();
+            }
         }
         private void AddPoint_Click(object sender, RoutedEventArgs e)
         {
@@ -70,7 +85,7 @@ namespace Kusach.Windows
                 {
                     PointsList newAddPointToRoute = new PointsList()
                     {
-                        Id = cnt.db.PointsList.Select(p => p.Id).DefaultIfEmpty(0).Max()+1,
+                        Id = cnt.db.PointsList.Select(p => p.Id).DefaultIfEmpty(0).Max() + 1,
                         IdPoint = pointId,
                         IdRoute = routeId
                     };