grisha.finikoff hace 4 años
padre
commit
095f6dc57f

+ 1 - 1
SchoolProject/App.config

@@ -8,7 +8,7 @@
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
   </startup>
   <connectionStrings>
-    <add name="gr672_pgvEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql;initial catalog=gr672_pgv;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
+    <add name="SchoolDBEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-0O5MH2L;initial catalog=SchoolDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
   </connectionStrings>
   <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">

+ 6 - 0
SchoolProject/App.xaml

@@ -11,6 +11,11 @@
             <Setter Property="BorderThickness" Value="2"></Setter>
             <Setter Property="Background" Value="#FF119D82"></Setter>
             <Setter Property="Foreground" Value="White"></Setter>
+            <Style.Resources>
+                <Style TargetType="Border">
+                    <Setter Property="CornerRadius" Value="10"></Setter>
+                </Style>
+            </Style.Resources>
         </Style>
 
         <Style x:Key="MainWindow" TargetType="Window">
@@ -32,6 +37,7 @@
             <Setter Property="ColumnWidth" Value="*"></Setter>
             <Setter Property="IsReadOnly" Value="True"></Setter>
             <Setter Property="BorderBrush" Value="#FF119D82"></Setter>
+            <Setter Property="BorderThickness" Value="2"></Setter>
         </Style>
 
         <Style TargetType="TextBox">

+ 0 - 1
SchoolProject/Briefing.cs

@@ -25,7 +25,6 @@ namespace SchoolProject
         public int IDInstructor { get; set; }
         public string Reason { get; set; }
         public string Note { get; set; }
-        public int IDEmployee { get; set; }
         public int IDType { get; set; }
     
         public virtual Employee Employee { get; set; }

+ 1 - 1
SchoolProject/DB.cs

@@ -8,7 +8,7 @@ namespace SchoolProject
 {
     public class DB
     {
-        public static gr672_pgvEntities db = new gr672_pgvEntities();
+        public static SchoolDBEntities  db = new SchoolDBEntities();
 
         public static bool Save()
         {

+ 24 - 0
SchoolProject/Helper.cs

@@ -18,5 +18,29 @@ namespace SchoolProject
         {
             MessageBox.Show(TextMessagre, "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
         }
+
+        public static int LevenshteinDistance(string string1, string string2)
+        {
+            if (string1 == null) throw new ArgumentNullException("string1");
+            if (string2 == null) throw new ArgumentNullException("string2");
+            int diff;
+            int[,] m = new int[string1.Length + 1, string2.Length + 1];
+
+            for (int i = 0; i <= string1.Length; i++) { m[i, 0] = i; }
+            for (int j = 0; j <= string2.Length; j++) { m[0, j] = j; }
+
+            for (int i = 1; i <= string1.Length; i++)
+            {
+                for (int j = 1; j <= string2.Length; j++)
+                {
+                    diff = (string1[i - 1] == string2[j - 1]) ? 0 : 1;
+
+                    m[i, j] = Math.Min(Math.Min(m[i - 1, j] + 1,
+                                             m[i, j - 1] + 1),
+                                             m[i - 1, j - 1] + diff);
+                }
+            }
+            return m[string1.Length, string2.Length];
+        }
     }
 }

+ 1 - 1
SchoolProject/MainWindow.xaml

@@ -5,7 +5,7 @@
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:SchoolProject"
         mc:Ignorable="d"
-        Title="{Binding ElementName=MainFrame,Path=Content.Title}" Height="550" Width="900" Style="{StaticResource MainWindow}" WindowStartupLocation="CenterScreen">
+        Title="{Binding ElementName=MainFrame,Path=Content.Title}" Height="550" Width="1000" Style="{StaticResource MainWindow}" WindowStartupLocation="CenterScreen">
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="40"/>

+ 3 - 3
SchoolProject/Model.Context.cs

@@ -13,10 +13,10 @@ namespace SchoolProject
     using System.Data.Entity;
     using System.Data.Entity.Infrastructure;
     
-    public partial class gr672_pgvEntities : DbContext
+    public partial class SchoolDBEntities : DbContext
     {
-        public gr672_pgvEntities()
-            : base("name=gr672_pgvEntities")
+        public SchoolDBEntities()
+            : base("name=SchoolDBEntities")
         {
         }
     

+ 1 - 1
SchoolProject/Model.Designer.cs

@@ -1,4 +1,4 @@
-// Создание кода T4 для модели "C:\Users\gr672_pgv\source\repos\SchoolProject\SchoolProject\Model.edmx" включено. 
+// Создание кода T4 для модели "C:\Users\Григорий\source\repos\School\SchoolProject\Model.edmx" включено. 
 // Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
 // на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
 // открыта в конструкторе.

+ 14 - 17
SchoolProject/Model.edmx

@@ -4,17 +4,16 @@
   <edmx:Runtime>
     <!-- SSDL content -->
     <edmx:StorageModels>
-      <Schema Namespace="Хранилище gr672_pgvModel" 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="Хранилище SchoolDBModel" 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="Briefing">
           <Key>
             <PropertyRef Name="BriefingID" />
           </Key>
           <Property Name="BriefingID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
-          <Property Name="Date" Type="date" Nullable="false" />
+          <Property Name="Date" Type="datetime" Nullable="false" />
           <Property Name="IDInstructor" Type="int" Nullable="false" />
           <Property Name="Reason" Type="nvarchar" MaxLength="50" Nullable="false" />
           <Property Name="Note" Type="nvarchar(max)" Nullable="false" />
-          <Property Name="IDEmployee" Type="int" Nullable="false" />
           <Property Name="IDType" Type="int" Nullable="false" />
         </EntityType>
         <EntityType Name="Employee">
@@ -27,7 +26,7 @@
           <Property Name="MiddleName" Type="nvarchar" MaxLength="50" />
           <Property Name="IsWorking" Type="bit" Nullable="false" />
           <Property Name="IDPosition" Type="int" Nullable="false" />
-          <Property Name="BirthDate" Type="date" Nullable="false" />
+          <Property Name="BirthDate" Type="datetime" Nullable="false" />
           <Property Name="IDSubdivision" Type="int" Nullable="false" />
         </EntityType>
         <EntityType Name="EmployeeInBriefing">
@@ -112,7 +111,7 @@
             </Dependent>
           </ReferentialConstraint>
         </Association>
-        <EntityContainer Name="Хранилище gr672_pgvModelContainer">
+        <EntityContainer Name="Хранилище SchoolDBModelContainer">
           <EntitySet Name="Briefing" EntityType="Self.Briefing" Schema="dbo" store:Type="Tables" />
           <EntitySet Name="Employee" EntityType="Self.Employee" Schema="dbo" store:Type="Tables" />
           <EntitySet Name="EmployeeInBriefing" EntityType="Self.EmployeeInBriefing" Schema="dbo" store:Type="Tables" />
@@ -143,17 +142,16 @@
     </edmx:StorageModels>
     <!-- CSDL content -->
     <edmx:ConceptualModels>
-      <Schema Namespace="gr672_pgvModel" 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">
+      <Schema Namespace="SchoolDBModel" 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">
         <EntityType Name="Briefing">
           <Key>
             <PropertyRef Name="BriefingID" />
           </Key>
           <Property Name="BriefingID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
-          <Property Name="Date" Type="DateTime" Nullable="false" Precision="0" />
+          <Property Name="Date" Type="DateTime" Nullable="false" Precision="3" />
           <Property Name="IDInstructor" Type="Int32" Nullable="false" />
           <Property Name="Reason" Type="String" MaxLength="50" FixedLength="false" Unicode="true" Nullable="false" />
           <Property Name="Note" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" Nullable="false" />
-          <Property Name="IDEmployee" Type="Int32" Nullable="false" />
           <Property Name="IDType" Type="Int32" Nullable="false" />
           <NavigationProperty Name="Employee" Relationship="Self.FK_Briefing_Employee" FromRole="Briefing" ToRole="Employee" />
           <NavigationProperty Name="EmployeeInBriefing" Relationship="Self.FK_EmployeeInBriefing_Briefing" FromRole="Briefing" ToRole="EmployeeInBriefing" />
@@ -168,7 +166,7 @@
           <Property Name="MiddleName" Type="String" MaxLength="50" FixedLength="false" Unicode="true" />
           <Property Name="IsWorking" Type="Boolean" Nullable="false" />
           <Property Name="IDPosition" Type="Int32" Nullable="false" />
-          <Property Name="BirthDate" Type="DateTime" Nullable="false" Precision="0" />
+          <Property Name="BirthDate" Type="DateTime" Nullable="false" Precision="3" />
           <Property Name="IDSubdivision" Type="Int32" Nullable="false" />
           <NavigationProperty Name="Briefing" Relationship="Self.FK_Briefing_Employee" FromRole="Employee" ToRole="Briefing" />
           <NavigationProperty Name="Position" Relationship="Self.FK_Employee_Position" FromRole="Employee" ToRole="Position" />
@@ -261,7 +259,7 @@
             </Dependent>
           </ReferentialConstraint>
         </Association>
-        <EntityContainer Name="gr672_pgvEntities" annotation:LazyLoadingEnabled="true">
+        <EntityContainer Name="SchoolDBEntities" annotation:LazyLoadingEnabled="true">
           <EntitySet Name="Briefing" EntityType="Self.Briefing" />
           <EntitySet Name="Employee" EntityType="Self.Employee" />
           <EntitySet Name="EmployeeInBriefing" EntityType="Self.EmployeeInBriefing" />
@@ -293,22 +291,21 @@
     <!-- C-S mapping content -->
     <edmx:Mappings>
       <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2009/11/mapping/cs">
-        <EntityContainerMapping StorageEntityContainer="Хранилище gr672_pgvModelContainer" CdmEntityContainer="gr672_pgvEntities">
+        <EntityContainerMapping StorageEntityContainer="Хранилище SchoolDBModelContainer" CdmEntityContainer="SchoolDBEntities">
           <EntitySetMapping Name="Briefing">
-            <EntityTypeMapping TypeName="gr672_pgvModel.Briefing">
+            <EntityTypeMapping TypeName="SchoolDBModel.Briefing">
               <MappingFragment StoreEntitySet="Briefing">
                 <ScalarProperty Name="BriefingID" ColumnName="BriefingID" />
                 <ScalarProperty Name="Date" ColumnName="Date" />
                 <ScalarProperty Name="IDInstructor" ColumnName="IDInstructor" />
                 <ScalarProperty Name="Reason" ColumnName="Reason" />
                 <ScalarProperty Name="Note" ColumnName="Note" />
-                <ScalarProperty Name="IDEmployee" ColumnName="IDEmployee" />
                 <ScalarProperty Name="IDType" ColumnName="IDType" />
               </MappingFragment>
             </EntityTypeMapping>
           </EntitySetMapping>
           <EntitySetMapping Name="Employee">
-            <EntityTypeMapping TypeName="gr672_pgvModel.Employee">
+            <EntityTypeMapping TypeName="SchoolDBModel.Employee">
               <MappingFragment StoreEntitySet="Employee">
                 <ScalarProperty Name="EmployeeID" ColumnName="EmployeeID" />
                 <ScalarProperty Name="LastName" ColumnName="LastName" />
@@ -322,7 +319,7 @@
             </EntityTypeMapping>
           </EntitySetMapping>
           <EntitySetMapping Name="EmployeeInBriefing">
-            <EntityTypeMapping TypeName="gr672_pgvModel.EmployeeInBriefing">
+            <EntityTypeMapping TypeName="SchoolDBModel.EmployeeInBriefing">
               <MappingFragment StoreEntitySet="EmployeeInBriefing">
                 <ScalarProperty Name="ID" ColumnName="ID" />
                 <ScalarProperty Name="IDEmployee" ColumnName="IDEmployee" />
@@ -331,7 +328,7 @@
             </EntityTypeMapping>
           </EntitySetMapping>
           <EntitySetMapping Name="Position">
-            <EntityTypeMapping TypeName="gr672_pgvModel.Position">
+            <EntityTypeMapping TypeName="SchoolDBModel.Position">
               <MappingFragment StoreEntitySet="Position">
                 <ScalarProperty Name="PositionID" ColumnName="PositionID" />
                 <ScalarProperty Name="PositionName" ColumnName="PositionName" />
@@ -339,7 +336,7 @@
             </EntityTypeMapping>
           </EntitySetMapping>
           <EntitySetMapping Name="Subdivision">
-            <EntityTypeMapping TypeName="gr672_pgvModel.Subdivision">
+            <EntityTypeMapping TypeName="SchoolDBModel.Subdivision">
               <MappingFragment StoreEntitySet="Subdivision">
                 <ScalarProperty Name="SubdivisionID" ColumnName="SubdivisionID" />
                 <ScalarProperty Name="SubdivisionName" ColumnName="SubdivisionName" />

+ 11 - 11
SchoolProject/Model.edmx.diagram

@@ -4,17 +4,17 @@
   <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
     <!-- Diagram content (shape and connector positions) -->
     <edmx:Diagrams>
-      <Diagram DiagramId="c6a88566c307429599bf85050b31d15c" Name="Diagram1">
-        <EntityTypeShape EntityType="gr672_pgvModel.Briefing" Width="1.5" PointX="5.25" PointY="1.25" IsExpanded="true" />
-        <EntityTypeShape EntityType="gr672_pgvModel.Employee" Width="1.5" PointX="3" PointY="1" IsExpanded="true" />
-        <EntityTypeShape EntityType="gr672_pgvModel.EmployeeInBriefing" Width="1.5" PointX="7.5" PointY="1.625" IsExpanded="true" />
-        <EntityTypeShape EntityType="gr672_pgvModel.Position" Width="1.5" PointX="0.75" PointY="1.875" IsExpanded="true" />
-        <EntityTypeShape EntityType="gr672_pgvModel.Subdivision" Width="1.5" PointX="0.75" PointY="5.875" IsExpanded="true" />
-        <AssociationConnector Association="gr672_pgvModel.FK_Briefing_Employee" ManuallyRouted="false" />
-        <AssociationConnector Association="gr672_pgvModel.FK_EmployeeInBriefing_Briefing" ManuallyRouted="false" />
-        <AssociationConnector Association="gr672_pgvModel.FK_Employee_Position" ManuallyRouted="false" />
-        <AssociationConnector Association="gr672_pgvModel.FK_Employee_Subdivision" ManuallyRouted="false" />
-        <AssociationConnector Association="gr672_pgvModel.FK_EmployeeInBriefing_Employee" ManuallyRouted="false" />
+      <Diagram DiagramId="d56963a4721d426694da1b232aeea02e" Name="Diagram1">
+        <EntityTypeShape EntityType="SchoolDBModel.Briefing" Width="1.5" PointX="5.25" PointY="1.375" IsExpanded="true" />
+        <EntityTypeShape EntityType="SchoolDBModel.Employee" Width="1.5" PointX="3" PointY="1" IsExpanded="true" />
+        <EntityTypeShape EntityType="SchoolDBModel.EmployeeInBriefing" Width="1.5" PointX="7.5" PointY="1.625" IsExpanded="true" />
+        <EntityTypeShape EntityType="SchoolDBModel.Position" Width="1.5" PointX="0.75" PointY="1.875" IsExpanded="true" />
+        <EntityTypeShape EntityType="SchoolDBModel.Subdivision" Width="1.5" PointX="0.75" PointY="5.875" IsExpanded="true" />
+        <AssociationConnector Association="SchoolDBModel.FK_Briefing_Employee" ManuallyRouted="false" />
+        <AssociationConnector Association="SchoolDBModel.FK_EmployeeInBriefing_Briefing" ManuallyRouted="false" />
+        <AssociationConnector Association="SchoolDBModel.FK_Employee_Position" ManuallyRouted="false" />
+        <AssociationConnector Association="SchoolDBModel.FK_Employee_Subdivision" ManuallyRouted="false" />
+        <AssociationConnector Association="SchoolDBModel.FK_EmployeeInBriefing_Employee" ManuallyRouted="false" />
       </Diagram>
     </edmx:Diagrams>
   </edmx:Designer>

+ 4 - 4
SchoolProject/SchoolProject.csproj

@@ -160,10 +160,13 @@
     <None Include="App.config" />
   </ItemGroup>
   <ItemGroup>
+    <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
+  </ItemGroup>
+  <ItemGroup>
     <Content Include="Model.Context.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
-      <LastGenOutput>Model.Context.cs</LastGenOutput>
       <DependentUpon>Model.edmx</DependentUpon>
+      <LastGenOutput>Model.Context.cs</LastGenOutput>
     </Content>
     <Content Include="Model.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
@@ -171,8 +174,5 @@
       <LastGenOutput>Model.cs</LastGenOutput>
     </Content>
   </ItemGroup>
-  <ItemGroup>
-    <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 6 - 1
SchoolProject/ShowEmployeePage.xaml

@@ -11,12 +11,17 @@
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="40"/>
+            <RowDefinition Height="40"/>
             <RowDefinition/>
         </Grid.RowDefinitions>
         <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
             <Button x:Name="BtnAddEmployee" Click="BtnAddEmployee_Click" Margin="0,0,20,0">Добавить сотрудника</Button>
         </StackPanel>
-        <DataGrid Grid.Row="1" x:Name="EmployeeList" ColumnWidth ="*" Margin="5" KeyUp="EmployeeList_KeyUp">
+        <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="20,0,0,0">
+            <TextBlock Text="Поиск: " VerticalAlignment="Center" Margin="5"></TextBlock>
+            <TextBox x:Name="TxtSearch" Width="150" BorderThickness="2" TextChanged="TxtSearch_TextChanged"></TextBox>
+        </StackPanel>
+        <DataGrid Grid.Row="2" x:Name="EmployeeList" ColumnWidth ="*" Margin="5" KeyUp="EmployeeList_KeyUp">
             <DataGrid.Columns>
                 <DataGridTextColumn Header="ФИО" Binding="{Binding FullName}"></DataGridTextColumn>
                 <DataGridTextColumn Header="Возраст" Binding="{Binding Age}"></DataGridTextColumn>

+ 23 - 0
SchoolProject/ShowEmployeePage.xaml.cs

@@ -63,5 +63,28 @@ namespace SchoolProject
                 DeleteEmployee(EmployeeList.CurrentItem as Employee);
             }
         }
+
+        private void TxtSearch_TextChanged(object sender, TextChangedEventArgs e)
+        {
+            if (TxtSearch.Text == string.Empty)
+            {
+                Load();
+            }
+            else
+            {
+                List<Employee> Employees = DB.db.Employee.ToList();
+                List<Employee> LevenshteinList = new List<Employee>();
+                foreach (var item in Employees)
+                {
+                    if (Helper.LevenshteinDistance(item.LastName, TxtSearch.Text) <= 3)
+                    {
+
+                        LevenshteinList.Add(item);
+                    }
+                }
+                EmployeeList.ItemsSource = LevenshteinList;
+            }
+
+        }
     }
 }

+ 39 - 12
SchoolProject/WorkOfEmployeePage.xaml.cs

@@ -60,31 +60,58 @@ namespace SchoolProject
                 NewEmployee.Name.All(char.IsLetter) == false ||
                 (NewEmployee.MiddleName != string.Empty && NewEmployee.MiddleName.All(char.IsLetter) == false))
             {
-                Helper.ErrorMessage("Не все значения введены");
+                Helper.ErrorMessage("Не корректное ФИО");
                 return false;
             }
             return true;
         }
 
-        private void BtnAddOrEditEmployee_Click(object sender, RoutedEventArgs e)
+
+        public bool AddEmployee(Employee NewEmployee)
         {
+            if (Check(NewEmployee) == false)
+            {
+                return false;
+            }
+            DB.db.Employee.Add(NewEmployee);
+            if (DB.Save() == false)
+            {
+                return false;
+            }
+            else
+            {
+                Helper.InformationMessage("Сотрудник добавлен");
+                DataContext = new Employee();
+                return true;
+            }
+        }
 
-            
-            Employee employee = DataContext as Employee;
-            employee.IsWorking = true;
-            if (Check(employee) == false)
+
+        public bool EditEmployee()
+        {
+            Employee CurrentEmployee = DataContext as Employee;
+            if (Check(CurrentEmployee) == false)
             {
-                return;
+                return false;
+            }
+            if (DB.Save() == false)
+            {
+                return false;
             }
+            Helper.InformationMessage("Сотрудник изменён");
+            return true;
+        }
+
+        private void BtnAddOrEditEmployee_Click(object sender, RoutedEventArgs e)
+        {
+            Employee employee = DataContext as Employee;
+            employee.IsWorking = true;
             if (employee.EmployeeID == 0)
             {
-                DB.db.Employee.Add(employee);
-                DB.Save();
-                Helper.InformationMessage("Сотрудник добавлен");
+                AddEmployee(employee);
                 return;
             }
-            DB.Save();
-            Helper.InformationMessage("Сотрудник изменён");
+            EditEmployee();
         }
     }
 }

+ 1 - 0
SchoolTest/App.Config

@@ -6,6 +6,7 @@
   </configSections>
   <connectionStrings>
     <add name="gr672_pgvEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql;initial catalog=gr672_pgv;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
+    <add name="SchoolDBEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-0O5MH2L;initial catalog=SchoolDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
   </connectionStrings>
   <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">

+ 43 - 2
SchoolTest/SchoolTest.cs

@@ -11,14 +11,46 @@ namespace SchoolTest
         [TestMethod]
         public void AddEmployeeTest()
         {
-
+            App app = new App();
+            app.InitializeComponent();
+            Employee TestEmployee = new Employee
+            {
+                LastName = "",
+                Name = "",
+                MiddleName = "",
+                BirthDate = DateTime.Today,
+                Position = DB.db.Position.Find(1),
+                Subdivision = DB.db.Subdivision.Find(1),
+                IsWorking = true
+            };
+            WorkOfEmployeePage workOfEmployeePage = new WorkOfEmployeePage();
+            Assert.IsFalse(workOfEmployeePage.AddEmployee(TestEmployee));
+            TestEmployee.LastName = "Test";
+            TestEmployee.Name = "Test2";
+            TestEmployee.MiddleName = "Test";
+            Assert.IsFalse(workOfEmployeePage.AddEmployee(TestEmployee));
+            TestEmployee.Name = "Test";
+            Assert.IsTrue(workOfEmployeePage.AddEmployee(TestEmployee));
+            var FindEmploye = DB.db.Employee.FirstOrDefault(x => x.LastName == "Test");
+            Assert.IsNotNull(FindEmploye);
+            DB.db.Employee.Remove(FindEmploye);
+            DB.Save();
         }
 
 
         [TestMethod]
         public void EditEmployeeTest()
         {
-
+            var FirstEmployee = DB.db.Employee.Find(1);
+            string NormalName = FirstEmployee.Name;
+            FirstEmployee.Name = "";
+            WorkOfEmployeePage workOfEmployeePage = new WorkOfEmployeePage();
+            workOfEmployeePage.DataContext = FirstEmployee;
+            Assert.IsFalse(workOfEmployeePage.EditEmployee());
+            FirstEmployee.Name = "Test1";
+            Assert.IsFalse(workOfEmployeePage.EditEmployee());
+            FirstEmployee.Name = NormalName;
+            Assert.IsTrue(workOfEmployeePage.EditEmployee());
         }
 
         [TestMethod]
@@ -29,6 +61,7 @@ namespace SchoolTest
                 LastName = "Test",
                 Name = "Test",
                 MiddleName = "Test",
+                BirthDate = DateTime.Today,
                 IDPosition = 1,
                 IDSubdivision = 1
             };
@@ -43,5 +76,13 @@ namespace SchoolTest
             Assert.IsNull(FindEmploye);
 
         }
+
+
+        [TestMethod]
+        public void LevenshteinDistanceTest()
+        {
+            Assert.AreEqual(Helper.LevenshteinDistance("мама", "папа"), 2);
+            Assert.AreNotEqual(Helper.LevenshteinDistance("Пищаев", "Пинкаув"), 4);
+        }
     }
 }