浏览代码

Удаление и отмена

Danila Alekseev 2 年之前
父节点
当前提交
655ff7cf87
共有 5 个文件被更改,包括 52 次插入5 次删除
  1. 1 1
      LR1/Entities/TitleWorkers.Designer.cs
  2. 2 2
      LR1/Entities/TitleWorkers.edmx
  3. 4 0
      LR1/LR1.csproj
  4. 1 0
      LR1/Workers.xaml
  5. 44 2
      LR1/Workers.xaml.cs

+ 1 - 1
LR1/Entities/TitleWorkers.Designer.cs

@@ -1,4 +1,4 @@
-// Создание кода T4 для модели "C:\Users\asus\OneDrive\Рабочий стол\7лаба\MDK_0504_Alekseev\LR1\Entities\TitleWorkers.edmx" включено. 
+// Создание кода T4 для модели "C:\Users\asus\OneDrive\Рабочий стол\11 спидранчик\MDK_0504_Alekseev\LR1\Entities\TitleWorkers.edmx" включено. 
 // Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
 // на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
 // открыта в конструкторе.

+ 2 - 2
LR1/Entities/TitleWorkers.edmx

@@ -9,7 +9,7 @@
           <Key>
             <PropertyRef Name="ID" />
           </Key>
-          <Property Name="ID" Type="int" Nullable="false" />
+          <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
           <Property Name="Surname" Type="nvarchar(max)" />
           <Property Name="Name" Type="nvarchar(max)" />
           <Property Name="Patronymic" Type="nvarchar(max)" />
@@ -61,7 +61,7 @@
           <Key>
             <PropertyRef Name="ID" />
           </Key>
-          <Property Name="ID" Type="Int32" Nullable="false" />
+          <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
           <Property Name="Surname" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />
           <Property Name="Name" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />
           <Property Name="Patronymic" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />

+ 4 - 0
LR1/LR1.csproj

@@ -53,6 +53,7 @@
     <Reference Include="System" />
     <Reference Include="System.ComponentModel.DataAnnotations" />
     <Reference Include="System.Data" />
+    <Reference Include="System.Data.Entity" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Security" />
     <Reference Include="System.Spatial, Version=5.8.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -197,5 +198,8 @@
   <ItemGroup>
     <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
   </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Connected Services\" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 1 - 0
LR1/Workers.xaml

@@ -59,6 +59,7 @@
                   MaxWidth="1000" MaxHeight="295" RowBackground="#FFE6D3EF" AlternatingRowBackground="#FC96CFD4" BorderBrush="#FF1F33EB"
                   BorderThickness="3" IsReadOnly="True" RowHeight="25" Cursor="Hand" CanUserAddRows="False" CanUserDeleteRows="False">
             <DataGrid.Columns>
+                <DataGridTextColumn Header="ID" Width="25" Binding="{Binding ID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                 <DataGridTextColumn Header="Фамилия" Width="80" Binding="{Binding Surname, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                 <DataGridTextColumn Header="Имя" Width="80" Binding="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                 <DataGridTextColumn Header="Отчество" Width="100" Binding="{Binding Patronymic, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

+ 44 - 2
LR1/Workers.xaml.cs

@@ -16,6 +16,17 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
+using System.Data.Entity.Core.Objects.DataClasses;
+using System.Data.Entity.Core;
+using System.Data.Entity.Infrastructure;
+using System.Data.Entity.Migrations;
+using System.Data.Entity.ModelConfiguration;
+using System.Data.Entity.Spatial;
+using System.Data.Entity.SqlServer;
+using System.Data.Entity.Utilities;
+using System.Data.Entity.Validation;
+using System.Data.Objects;
+using System.Data.Entity;
 
 namespace LR1
 {
@@ -43,6 +54,8 @@ namespace LR1
 
         private void UndoCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
         {
+            RewriteEmployee();
+            DataGridEmployee.IsReadOnly = true;
             MessageBox.Show("Отмена");
             isDirty = true;
             isLoaded = false;
@@ -55,6 +68,22 @@ namespace LR1
 
         private void DeleteCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
         {
+            Employee emp = DataGridEmployee.SelectedItem as Employee;
+            if (emp !=null)
+            {
+                MessageBoxResult result = MessageBox.Show("Удалить сотрудника: " + emp.Surname + " " + emp.Patronymic, "Предупреждение", MessageBoxButton.OKCancel);
+                if (result == MessageBoxResult.OK)
+                {
+                    DataEntitiesEmployee.Employees.Remove(emp);
+                    DataGridEmployee.SelectedIndex = DataGridEmployee.SelectedIndex == 0 ? 1 : DataGridEmployee.SelectedIndex - 1;
+                    ListEmployee.Remove(emp);
+                    DataEntitiesEmployee.SaveChanges();
+                }
+            }
+            else
+            {
+                MessageBox.Show("Выберите строку для удаления");
+            }
             MessageBox.Show("Удаление");
             isDirty = false;
             isLoaded = true;
@@ -67,7 +96,7 @@ namespace LR1
 
         private void AddCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
         {
-            Employee employee = Employee.CreateEmployee(-1, "не задано", "не задано", "не задано", 0);
+            Employee employee = Employee.CreateEmployee(DataGridEmployee.Items.Count + 14, "не задано", "не задано", "не задано", 0);
             employee.Telephone = "не задано";
             employee.Email = "не задано";
             try
@@ -130,13 +159,26 @@ namespace LR1
         }
 
         private void Page_Loaded(object sender, RoutedEventArgs e)
+        {
+            GetEmployees();
+            DataGridEmployee.ItemsSource = ListEmployee;   
+        }
+
+        private void GetEmployees()
         {
             var queryEmployee = DataEntitiesEmployee.Employees.OrderBy(Employee => Employee.Surname);
             foreach (Employee emp in queryEmployee)
             {
                 ListEmployee.Add(emp);
             }
-            DataGridEmployee.ItemsSource = ListEmployee;   
+            DataGridEmployee.ItemsSource = ListEmployee;
+        }
+
+        private void RewriteEmployee()
+        {
+            DataEntitiesEmployee = new WorkersEntities();
+            ListEmployee.Clear();
+            GetEmployees();
         }
     }
 }