Загрузка данных
<Window x:Class="test.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:test"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="300">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="77,44,0,0" TextWrapping="Wrap" Text="Авторизация" VerticalAlignment="Top" FontSize="20" FontWeight="Bold"/>
<TextBox x:Name="Login" HorizontalAlignment="Left" Margin="56,126,0,0" TextWrapping="Wrap" Text="login" VerticalAlignment="Top" Width="120"/>
<PasswordBox x:Name="Password" HorizontalAlignment="Left" Margin="56,181,0,0" VerticalAlignment="Top" Width="120"/>
<Button x:Name="Button" Content="Авторизация" HorizontalAlignment="Left" Margin="195,280,0,0" VerticalAlignment="Top" Click="Button_Click"/>
</Grid>
</Window>
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 test
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private testEntities db = new testEntities();
private void Button_Click(object sender, RoutedEventArgs e)
{
if (Login.Text == "" || Password.Password == "")
{
MessageBox.Show("Заполните все поля");
}
else
{
var user = db.users.FirstOrDefault(item => item.login == Login.Text);
if (user != null)
{
if(Password.Password == user.password)
{
if(user.isBlocked == false)
{
user.count = 0;
db.SaveChanges();
///MessageBox.Show("Успех");
if (user.role == 1)
{
var adminWindow = new AdminWindow();
adminWindow.Show();
this.Close();
}
else
{
MessageBox.Show("Вы не админ");
}
}
else
{
user.count++;
db.SaveChanges();
MessageBox.Show("Обратитесь к администратору");
}
}
else
{
user.count ++;
db.SaveChanges();
MessageBox.Show("Введите верно пароль");
if (user.count >= 3)
{
user.isBlocked = true;
db.SaveChanges();
MessageBox.Show("Вы заблокированы. Обратитесь к администратору!");
}
}
}
else
{
MessageBox.Show("Введите верно логин!");
}
}
}
}
}
<Window x:Class="test.AdminWindow"
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:test"
mc:Ignorable="d"
Title="AdminWindow" Height="450" Width="800">
<Grid>
<StackPanel>
<DataGrid Height="100" d:ItemsSource="{d:SampleData ItemCount=5}"/>
<Button Content ="Сохранить"/>
<Button Content="Добавить пользователя" Click="Button_Click"/>
</StackPanel>
</Grid>
</Window>
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.Shapes;
namespace test
{
/// <summary>
/// Interaction logic for AdminWindow.xaml
/// </summary>
public partial class AdminWindow : Window
{
public AdminWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var newUser = new AddUser();
newUser.Show();
this.Close();
}
}
}
<Window x:Class="test.AddUser"
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:test"
mc:Ignorable="d"
Title="AddUser" Height="350" Width="300">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="77,44,0,0" TextWrapping="Wrap" Text="Добавление" VerticalAlignment="Top" FontSize="20" FontWeight="Bold"/>
<TextBox x:Name="Login" HorizontalAlignment="Left" Margin="56,126,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="Password" HorizontalAlignment="Left" Margin="56,181,0,0" VerticalAlignment="Top" Width="120"/>
<Button x:Name="Button" Content="Добавить пользователя" HorizontalAlignment="Left" Margin="150,280,0,0" VerticalAlignment="Top" Click="Button_Click"/>
</Grid>
</Window>
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.Shapes;
namespace test
{
/// <summary>
/// Interaction logic for AddUser.xaml
/// </summary>
public partial class AddUser : Window
{
public AddUser()
{
InitializeComponent();
}
private testEntities db = new testEntities();
private void Button_Click(object sender, RoutedEventArgs e)
{
if (Login.Text == "" || Password.Text == "")
{
MessageBox.Show("Ведите логин и пароль пользователя");
}
else
{
var user = db.users.FirstOrDefault(x => x.login == Login.Text);
if (user != null)
{
MessageBox.Show("Такой логин уже существует");
}
else
{
var newUser = new users
{
login = Login.Text,
password = Password.Text
};
db.users.Add(newUser);
db.SaveChanges();
MessageBox.Show("Пользователь успешно добавлен");
}
}
}
}
}