Загрузка данных


<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("Пользователь успешно добавлен");

                }
            }
        }
    }
}