Pārlūkot izejas kodu

Созданы авторизация и изменения своих данных

Alec 3 gadi atpakaļ
vecāks
revīzija
202dace61a

+ 4 - 3
WPF01/MainWindow.xaml

@@ -1,11 +1,11 @@
-<Window x:Class="WPF01.MainWindow"
+<Window x:Name="RootWindow" x:Class="WPF01.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:WPF01"
         mc:Ignorable="d"
-        Title="Вход в систему" Height="400" Width="600" Visibility="Visible" MinWidth="290" MinHeight="500">
+        Title="Какая-то программа" Height="400" Width="600" Visibility="Visible" MinWidth="290" MinHeight="500">
 
     <Grid>
         <Grid.Background>
@@ -33,7 +33,8 @@
             <RowDefinition Height="1*"/>
         </Grid.RowDefinitions>
 
-        <Frame x:Name="MainFrame" Margin="0" Loaded="Frame_Loaded" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" NavigationUIVisibility="Hidden" HorizontalAlignment="Center" VerticalAlignment="Center" ></Frame>
+        <Frame x:Name="MainFrame" Margin="0" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" NavigationUIVisibility="Hidden" HorizontalAlignment="Center" VerticalAlignment="Center" ></Frame>
+        <Label x:Name="userInfoButton" Visibility="Hidden" MouseUp="Label_MouseUp" Content="Мои данные" Grid.Column="1" HorizontalAlignment="Right" Margin="0" VerticalAlignment="Center" Cursor="Hand"/>
     </Grid>
 
 </Window>

+ 9 - 6
WPF01/MainWindow.xaml.cs

@@ -27,13 +27,16 @@ namespace WPF01
             PageNavigation.authorization = new pages.Authorization();
             PageNavigation.registration = new pages.Registration();
             PageNavigation.mainPage = new pages.MainPage();
+            PageNavigation.director = new pages.Director();
+			PageNavigation.userInfo = new pages.UserInfo();
+			PageNavigation.mainWindow = this;
 
-            MainFrame.Navigate(PageNavigation.registration);
+            MainFrame.Navigate(PageNavigation.authorization);
         }
 
-        private void Frame_Loaded(object sender, RoutedEventArgs e)
-        {
-           
-        }
-    }
+		private void Label_MouseUp(object sender, MouseButtonEventArgs e)
+		{
+			MainFrame.Navigate(PageNavigation.userInfo);
+		}
+	}
 }

+ 4 - 0
WPF01/PageNavigation.cs

@@ -8,5 +8,9 @@ namespace WPF01
         public static pages.Authorization authorization;
         public static pages.Registration registration;
         public static pages.MainPage mainPage;
+        public static pages.Director director;
+        public static pages.UserInfo userInfo;
+
+        public static MainWindow mainWindow;
     }
 }

+ 14 - 0
WPF01/WPF01.csproj

@@ -105,6 +105,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="pages\Director.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="pages\MainPage.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
@@ -113,18 +117,28 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="pages\UserInfo.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="PageNavigation.cs" />
     <Compile Include="pages\Authorization.xaml.cs">
       <DependentUpon>Authorization.xaml</DependentUpon>
     </Compile>
+    <Compile Include="pages\Director.xaml.cs">
+      <DependentUpon>Director.xaml</DependentUpon>
+    </Compile>
     <Compile Include="pages\MainPage.xaml.cs">
       <DependentUpon>MainPage.xaml</DependentUpon>
     </Compile>
     <Compile Include="pages\Registration.xaml.cs">
       <DependentUpon>Registration.xaml</DependentUpon>
     </Compile>
+    <Compile Include="pages\UserInfo.xaml.cs">
+      <DependentUpon>UserInfo.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs">
       <SubType>Code</SubType>
     </Compile>

+ 2 - 0
WPF01/db/Database.cs

@@ -9,5 +9,7 @@ namespace WPF01.db
     class Database
     {
         public static DB Context = new DB();
+
+        public static Manager User = null;
     }
 }

+ 3 - 2
WPF01/pages/Authorization.xaml

@@ -9,12 +9,13 @@
       Title="Авторизация" Width="250" Height="250">
 
     <Grid Margin="0" >
-        
+
         <TextBox x:Name="textBoxLogin" Margin="25,50,25,0" TextWrapping="Wrap" Width="200" Height="30" VerticalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top" Visibility="Visible" BorderThickness="10,1,1,1" KeyDown="TextBoxInput"/>
         <PasswordBox x:Name="textBoxPassword" Margin="25,111,25,0" Width="200" Height="30" VerticalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top" Visibility="Visible" BorderThickness="10,1,1,1" PasswordChar="♦" KeyDown="TextBoxInput"/>
-        <Button x:Name="buttonLogin" Content="Вход" HorizontalAlignment="Center" Margin="25,166,25,0" VerticalAlignment="Top" Width="200" Height="30" IsEnabled="False" Visibility="Visible" BorderThickness="1" Click="ButtonClick"/>
+        <Button x:Name="buttonLogin" Content="Вход" HorizontalAlignment="Center" Margin="25,166,25,0" VerticalAlignment="Top" Width="200" Height="30" IsEnabled="False" Visibility="Visible" BorderThickness="1" Click="ButtonClick" />
         <Label Content="Логин:" HorizontalAlignment="Center" Margin="25,24,25,0" VerticalAlignment="Top" Width="200"/>
         <Label Content="Пароль:" HorizontalAlignment="Center" Margin="25,85,25,0" VerticalAlignment="Top" Width="200"/>
+        <Label Content="Регистрация" HorizontalAlignment="Center" Margin="25,214,25,0" VerticalAlignment="Top" Width="200" HorizontalContentAlignment="Center" Foreground="Black" Cursor="Hand" MouseUp="Label_MouseUp"/>
     </Grid>
 
 </Page>

+ 39 - 1
WPF01/pages/Authorization.xaml.cs

@@ -15,6 +15,8 @@ using System.Windows.Shapes;
 
 namespace WPF01.pages
 {
+    using db;
+
     /// <summary>
     /// Логика взаимодействия для Authorization.xaml
     /// </summary>
@@ -27,7 +29,39 @@ namespace WPF01.pages
 
         private void ButtonClick(object sender, RoutedEventArgs e)
         {
-            NavigationService.Navigate(PageNavigation.mainPage);
+            string login = textBoxLogin.Text;
+            string password = textBoxPassword.Password;
+
+            IQueryable<Manager> man = Database.Context.Manager.Where(
+                m => m.Login == login && m.Password == password);
+
+            Database.User = man.FirstOrDefault();
+            if (Database.User == null)
+            {
+                MessageBox.Show("Неверный логин/пароль");
+                return;
+            }
+
+			switch (Database.User.Role)
+			{
+				case "Директор":
+					NavigationService.Navigate(PageNavigation.director);
+					break;
+
+				case "Менеджер":
+					NavigationService.Navigate(PageNavigation.mainPage);
+					break;
+
+				case "Администратор":
+					NavigationService.Navigate(PageNavigation.mainPage);
+					break;
+
+				default:
+					NavigationService.Navigate(PageNavigation.mainPage);
+					break;
+			}
+
+			PageNavigation.mainWindow.userInfoButton.Visibility = Visibility.Visible;
         }
 
         private void TextBoxInput(object sender, KeyEventArgs e)
@@ -42,6 +76,10 @@ namespace WPF01.pages
             }
         }
 
+        private void Label_MouseUp(object sender, MouseButtonEventArgs e)
+        {
+            NavigationService.Navigate(PageNavigation.registration);
+        }
 
     }
 }

+ 17 - 0
WPF01/pages/Director.xaml

@@ -0,0 +1,17 @@
+<Page x:Class="WPF01.pages.Director"
+      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+      xmlns:local="clr-namespace:WPF01.pages"
+      mc:Ignorable="d" 
+      d:DesignHeight="450" d:DesignWidth="800"
+      Title="Director"
+      GotFocus="Page_GotFocus"
+      >
+
+    <Grid>
+        <Label Content="Label" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" />
+
+    </Grid>
+</Page>

+ 33 - 0
WPF01/pages/Director.xaml.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace WPF01.pages
+{
+    /// <summary>
+    /// Логика взаимодействия для Director.xaml
+    /// </summary>
+    public partial class Director : Page
+    {
+        public Director()
+        {
+            InitializeComponent();
+        }
+
+        private void Page_GotFocus(object sender, RoutedEventArgs e)
+        {
+            PageNavigation.mainWindow.Title = "Главная страница директора";
+        }
+    }
+}

+ 46 - 0
WPF01/pages/UserInfo.xaml

@@ -0,0 +1,46 @@
+<Page x:Class="WPF01.pages.UserInfo"
+      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+      xmlns:local="clr-namespace:WPF01.pages"
+      mc:Ignorable="d" 
+      d:DesignHeight="300" d:DesignWidth="400"
+      Title="UserInfo"
+      Loaded="Page_Loaded"
+      >
+
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="1*"/>
+            <RowDefinition Height="5*"/>
+            <RowDefinition Height="1*"/>
+            <RowDefinition Height="1*"/>
+        </Grid.RowDefinitions>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="2*"/>
+            <ColumnDefinition Width="4*"/>
+            <ColumnDefinition Width="1*"/>
+            <ColumnDefinition Width="4*"/>
+            <ColumnDefinition Width="2*"/>
+        </Grid.ColumnDefinitions>
+        <StackPanel Grid.Column="1" HorizontalAlignment="Left" Height="168" Margin="10,10,0,0" Grid.Row="1" VerticalAlignment="Top" Width="103">
+            <Label Content="Логин"/>
+            <Label Content="Label" Height="23" x:Name="loginLabel" />
+            <Label Content="Пароль"/>
+            <PasswordBox Height="24" x:Name="passwordBox"/>
+            <Label Content="Телефон"/>
+            <TextBox Height="23" x:Name="phoneTextBox"/>
+        </StackPanel>
+        <StackPanel Grid.Column="3" HorizontalAlignment="Left" Height="168" Margin="10,10,0,0" Grid.Row="1" VerticalAlignment="Top" Width="103">
+            <Label Content="Фамилия"/>
+            <TextBox Height="23" x:Name="lastnameTextBox"/>
+            <Label Content="Имя"/>
+            <TextBox Height="23" x:Name="fistnameTextBox"/>
+            <Label Content="Отчество"/>
+            <TextBox Height="22" x:Name="patronymicTextBox"/>
+        </StackPanel>
+        <Button Grid.ColumnSpan="3" Content="Сохранить" Grid.Column="1" HorizontalAlignment="Center" Margin="0" Grid.Row="2" VerticalAlignment="Top" Width="120" Click="Button_Click"/>
+
+    </Grid>
+</Page>

+ 64 - 0
WPF01/pages/UserInfo.xaml.cs

@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace WPF01.pages
+{
+	using db;
+    /// <summary>
+    /// Логика взаимодействия для UserInfo.xaml
+    /// </summary>
+    public partial class UserInfo : Page
+    {
+        public UserInfo()
+        {
+            InitializeComponent();
+        }
+
+		private void Button_Click(object sender, RoutedEventArgs e)
+		{
+			Database.User.Phone = phoneTextBox.Text;
+			Database.User.FirstName = fistnameTextBox.Text;
+			Database.User.SecondName = lastnameTextBox.Text;
+			Database.User.Patronymic = patronymicTextBox.Text;
+
+			if (
+				passwordBox.Password.Length != 0 &&
+				passwordBox.Password.Length > 3 &&
+				passwordBox.Password.Length < 11
+				)
+			{
+				Database.User.Password = passwordBox.Password;
+			}
+
+			int result = Database.Context.SaveChanges();
+			if (result > 0)
+			{
+				MessageBox.Show("Данные успешно изменены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
+			}
+		}
+
+		private void Page_Loaded(object sender, RoutedEventArgs e)
+		{
+			if (Database.User != null)
+			{
+				loginLabel.Content = Database.User.Login;
+				phoneTextBox.Text = Database.User.Phone;
+				fistnameTextBox.Text = Database.User.FirstName;
+				lastnameTextBox.Text = Database.User.SecondName;
+				patronymicTextBox.Text = Database.User.Patronymic;
+			}
+		}
+	}
+}