Browse Source

Дайте мне сдохнуть

Oleg Kireev 3 years ago
parent
commit
249f579f32

+ 1 - 1
Hotel_Course_Project/AdminPage.xaml.cs

@@ -168,7 +168,7 @@ namespace Hotel_Course_Project
 
         private void ClientSeacrhTB_TextChanged(object sender, TextChangedEventArgs e)
         {
-            
+
         }
 
         private void PaySeacrhTB_TextChanged(object sender, TextChangedEventArgs e)

+ 20 - 7
Hotel_Course_Project/AuthorizationWindow.xaml.cs

@@ -15,7 +15,26 @@ namespace Hotel_Course_Project
 
         private void AuthBtn_Click(object sender, RoutedEventArgs e)
         {
-            Auth(Login.Text, Password.Password);
+
+            if (Auth(Login.Text, Password.Password) == false)
+            {
+                MessageBox.Show("Ошибка авторизации");
+                Password.Password = "";
+            }
+            else
+            {
+                var user = DataBase.db.Staff.SingleOrDefault(x => x.Login == Login.Text && x.Password == Password.Password);
+                if (user != null && user.Id_PersStatus == 2)
+                {
+                    MessageBox.Show("Данный пользователь удалён из базы данных");
+                }
+                else
+                {
+                    MainWindow mainWindow = new MainWindow(user);
+                    mainWindow.Show();
+                    Close();
+                }
+            }
         }
 
         public bool Auth(string login, string password)
@@ -23,20 +42,14 @@ namespace Hotel_Course_Project
             var user = DataBase.db.Staff.SingleOrDefault(x => x.Login == login && x.Password == password);
             if (user != null && user.Id_PersStatus == 2)
             {
-                MessageBox.Show("Данный пользователь удалён из базы данных");
                 return true;
             }
             else if (user != null && user.Id_PersStatus == 1)
             {
-                MainWindow mainWindow = new MainWindow(user);
-                mainWindow.Show();
-                this.Close();
                 return true;
             }
             else
             {
-                MessageBox.Show("Ошибка авторизации");
-                Password.Password = "";
                 return false;
             }
         }

+ 34 - 7
Hotel_Course_Project/SomeMethods.cs

@@ -8,14 +8,41 @@ namespace Hotel_Course_Project
         #region Конвертирование байтового изображения в стандарт
         public static BitmapImage ConvertByteToBitmapImage(byte[] array)
         {
-            using (var ms = new System.IO.MemoryStream(array))
+            if (TestconvertBitToImage(array) == true)
             {
-                var image = new BitmapImage();
-                image.BeginInit();
-                image.CacheOption = BitmapCacheOption.OnLoad;
-                image.StreamSource = ms;
-                image.EndInit();
-                return image;
+                using (var ms = new System.IO.MemoryStream(array))
+                {
+                    var image = new BitmapImage();
+                    image.BeginInit();
+                    image.CacheOption = BitmapCacheOption.OnLoad;
+                    image.StreamSource = ms;
+                    image.EndInit();
+                    return image;
+                }
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        public static bool TestconvertBitToImage(byte[] array)
+        {
+            try
+            {
+                using (var ms = new System.IO.MemoryStream(array))
+                {
+                    var image = new BitmapImage();
+                    image.BeginInit();
+                    image.CacheOption = BitmapCacheOption.OnLoad;
+                    image.StreamSource = ms;
+                    image.EndInit();
+                }
+                return true;
+            }
+            catch
+            {
+                return false;
             }
         }
         #endregion

+ 1 - 1
Hotel_Course_Project/StaffChangeOrAddPage.xaml

@@ -5,7 +5,7 @@
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
       xmlns:local="clr-namespace:Hotel_Course_Project"
       mc:Ignorable="d" 
-      d:DesignHeight="450" d:DesignWidth="800"
+      d:DesignHeight="450" d:DesignWidth="800" Loaded="Page_Loaded"
       >
 
     <Grid>

+ 68 - 28
Hotel_Course_Project/StaffChangeOrAddPage.xaml.cs

@@ -13,7 +13,7 @@ namespace Hotel_Course_Project
     /// </summary>
     public partial class StaffChangeOrAddPage : Page
     {
-        public byte[] cotractImage;
+        public byte[] contractImage;
         public string FilePath;
         public Staff _staff;
         public int IdStaff = 0;
@@ -46,65 +46,97 @@ namespace Hotel_Course_Project
                 StaffDeleteOrRestoreBtn.Visibility = Visibility.Collapsed;
             }
 
-            if (staff == null || staff.PhotoContract == null)
-            {
-                SContractPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/no_picture.jpg"));
-            }
+
         }
 
         private void StaffChangeOrAddBtn_Click(object sender, RoutedEventArgs e)
         {
 
+            //if (DataContext == null)
+            //{
+            //    var existUser = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text);
+            //    if (existUser != null && DataContext == null)
+            //    {
+            //        MessageBox.Show("Такой логин уже имеется в базе данных!");
+            //        return;
+            //    }
+            //}
             if (DataContext == null)
             {
-                var existUser = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text);
-                if (existUser != null && DataContext == null)
+                if (SStaffRole.Text == null || SStaffRole.Text == "")
                 {
-                    MessageBox.Show("Такой логин уже имеется в базе данных!");
+                    MessageBox.Show("Не выбрана должность");
                     return;
                 }
+                else
+                {
+                    int numRole = DataBase.db.StaffRole.SingleOrDefault(item => item.Name == SStaffRole.Text).Id;
+                    if (TestAddStaff(SLName.Text, SFName.Text, SMName.Text, SLogin.Text, SPassword.Text, numRole) == true)
+                    {
+                        var lastId = DataBase.db.Staff.OrderByDescending(item => item.Id).FirstOrDefault().Id;
+                        DataBase.db.Staff.SingleOrDefault(item => item.Id == lastId).PhotoContract = contractImage;
+                        DataBase.db.SaveChanges();
+                    }
+                }
             }
-            if (SLName.Text == null || SFName.Text == null || SLogin.Text == null || SPassword.Text == null)
+            else
             {
-                MessageBox.Show("Ключевые поля не были заполнены!");
+                if (SLName.Text == null || SFName.Text == null || SLogin.Text == null || SPassword.Text == null)
+                {
+                    MessageBox.Show("Ключевые поля не были заполнены!");
+                    return;
+                }
+                else if (DataBase.db.Staff.SingleOrDefault(item => item.Id == IdStaff).Login != SLogin.Text)
+                {
+                    if (DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text) != null)
+                    {
+                        MessageBox.Show("Такой логин имеется у другого сотрудника");
+                        return;
+                    }
+                }
+                MessageBox.Show("Данные по сотрудинку изменены.");
+                _staff.PhotoContract = contractImage;
+                DataBase.db.SaveChanges();
+                PChanger.MainFrame.GoBack();
                 return;
             }
+        }
+
+        public bool TestAddStaff(string LName, string FName, string MName, string Login, string Password, int numRole)
+        {
+            if (SLName.Text == null || SLName.Text == "" || SFName.Text == null || SFName.Text == "" || SLogin.Text == null || SLogin.Text == "" || SPassword.Text == null || SPassword.Text == "")
+            {
+                MessageBox.Show("Ключевые поля не были заполнены!");
+                return false;
+            }
             else
             {
                 var existUserS = DataBase.db.Staff.SingleOrDefault(item => item.Login == SLogin.Text && item.Id != IdStaff);
                 if (existUserS != null)
                 {
                     MessageBox.Show("Такой логин уже имеется в базе данных у другого сотрудника!");
-                    return;
+                    return false;
                 }
-                else if (DataContext == null)
+                else
                 {
-                    int numRole = DataBase.db.StaffRole.SingleOrDefault(item => item.Name == SStaffRole.Text).Id;
                     Staff staff = new Staff()
                     {
-                        LName = SLName.Text,
-                        FName = SFName.Text,
-                        MName = SMName.Text,
-                        Login = SLogin.Text,
-                        Password = SPassword.Text,
+                        LName = LName,
+                        FName = FName,
+                        MName = MName,
+                        Login = Login,
+                        Password = Password,
                         Id_StaffRole = numRole,
-                        PhotoContract = cotractImage,
                         Id_PersStatus = 1
                     };
                     DataBase.db.Staff.Add(staff);
                     var lastId = DataBase.db.Staff.OrderByDescending(item => item.Id).FirstOrDefault().Id;
                     DataBase.db.SaveChanges();
+
                     MessageBox.Show("Сотрудник добавлен в базу.");
+                    return true;
                 }
-                else
-                {
-                    MessageBox.Show("Данные по сотрудинку изменены.");
-                    _staff.PhotoContract = cotractImage;
-                    DataBase.db.SaveChanges();
-                }
-                PChanger.MainFrame.GoBack();
             }
-
         }
 
         private void StaffDeleteOrRestoreBtn_Click(object sender, RoutedEventArgs e)
@@ -132,12 +164,20 @@ namespace Hotel_Course_Project
                 string uriString = $"{FilePath}";
                 BitmapImage bitimage = new BitmapImage(new Uri(@uriString));
                 SContractPhoto.Source = bitimage;
-                cotractImage = SomeMethods.ConvertBitmapImageToByte(bitimage);
+                contractImage = SomeMethods.ConvertBitmapImageToByte(bitimage);
             }
             else
             {
                 FilePath = string.Empty;
             }
         }
+
+        private void Page_Loaded(object sender, RoutedEventArgs e)
+        {
+            if (_staff == null || _staff.PhotoContract == null)
+            {
+                SContractPhoto.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/no_picture.jpg"));
+            }
+        }
     }
 }

BIN
PZ_Govna.docx


+ 1 - 1
UnitTestCourseProject/App.Config

@@ -5,7 +5,7 @@
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
   </configSections>
   <connectionStrings>
-    <add name="gr692_kovEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql;initial catalog=gr692_kov;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
+    <add name="gr692_kovEntities" connectionString="metadata=res://*/ModelDB.csdl|res://*/ModelDB.ssdl|res://*/ModelDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql;initial catalog=gr692_kov;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
   </connectionStrings>
   <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">

+ 66 - 11
UnitTestCourseProject/UnitTest.cs

@@ -1,6 +1,6 @@
-using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Hotel_Course_Project;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 using System;
-using Hotel_Course_Project;
 
 namespace UnitTestCourseProject
 {
@@ -10,28 +10,83 @@ namespace UnitTestCourseProject
         [TestMethod]
         public void TEstCoddingImageToByte()
         {
-            
-            
+            byte[] array = new byte[657467];
+            Assert.IsTrue(SomeMethods.TestconvertBitToImage(array));
+
+            Assert.IsTrue(SomeMethods.TestconvertBitToImage(array));
+
+            array = new byte[25234];
+            Assert.IsTrue(SomeMethods.TestconvertBitToImage(array));
+
+            array = new byte[5523334];
+            Assert.IsTrue(SomeMethods.TestconvertBitToImage(array));
+
+            array = new byte[0];
+            Assert.IsTrue(SomeMethods.TestconvertBitToImage(array));
 
 
         }
 
+        [TestMethod]
         public void TestDeCoddingByteToImage()
         {
 
         }
 
-        public void Authorization()
+        [TestMethod]
+        public void TestAuthorization()
         {
             AuthorizationWindow authorization = new AuthorizationWindow();
-            App app = new App();
             //Корректные пары логина и пароля
-            Assert.IsTrue(authorization.Auth("123","123"));
-            Assert.IsTrue(authorization.Auth("456","456"));
+            Assert.IsTrue(authorization.Auth("123", "123"));
+            Assert.IsTrue(authorization.Auth("456", "456"));
             //Некорректные пары логина и пароля
-            Assert.IsFalse(authorization.Auth("123456","123546"));
-            Assert.IsFalse(authorization.Auth("12334","541231"));
-            Assert.IsFalse(authorization.Auth("Login","Parol"));
+            Assert.IsFalse(authorization.Auth("123456", "123546"));
+            Assert.IsFalse(authorization.Auth("12334", "541231"));
+            Assert.IsFalse(authorization.Auth("Login", "Parol"));
+        }
+        [TestMethod]
+        public void TestAddStaff()
+        {
+            StaffChangeOrAddPage staffChangeOrAdd = new StaffChangeOrAddPage(null);
+            string LName = "";
+            string Fname = "";
+            string Mname = "";
+            string Login = "";
+            string Password = "";
+            Assert.IsFalse(staffChangeOrAdd.TestAddStaff(LName, Fname, Mname, Login, Password, 2));
+
+            staffChangeOrAdd = new StaffChangeOrAddPage(null);
+            LName = "";
+            Fname = "Иван";
+            Mname = "Иванович";
+            Login = "123";
+            Password = "123";
+            Assert.IsFalse(staffChangeOrAdd.TestAddStaff(LName, Fname, Mname, Login, Password, 2));
+
+            staffChangeOrAdd = new StaffChangeOrAddPage(null);
+            LName = "Иванов";
+            Fname = "";
+            Mname = "Иванович";
+            Login = "dsa";
+            Password = "dsa";
+            Assert.IsFalse(staffChangeOrAdd.TestAddStaff(LName, Fname, Mname, Login, Password, 2));
+
+            staffChangeOrAdd = new StaffChangeOrAddPage(null);
+            LName = "Иванов";
+            Fname = "Иван";
+            Mname = "Иванович";
+            Login = "1234567";
+            Password = "password";
+            Assert.IsTrue(staffChangeOrAdd.TestAddStaff(LName, Fname, Mname, Login, Password, 1));
+
+            staffChangeOrAdd = new StaffChangeOrAddPage(null);
+            LName = "Петренко";
+            Fname = "Михаил";
+            Mname = "Григорьевич";
+            Login = "Admin";
+            Password = "Admin";
+            Assert.IsTrue(staffChangeOrAdd.TestAddStaff(LName, Fname, Mname, Login, Password, 1));
         }
 
     }

BIN
ПЗ Говна.docx