привет, опиши пожалуйста вкратце ту работу которая была проделана мной по тексту в совершенном виде:
Создание класса модели User в Visual Studio
Что такое модель?
Это класс, который описывает структуру данных — соответствует таблице Users.
________________________________________
Как создать файл класса User.cs
1.	В Visual Studio в вашем проекте (тот самый WPF-проект) найдите папку Models. Если её нет — создайте:
o	Щёлкните правой кнопкой по проекту → Добавить → Новая папка, назовите её Models.
2.	В папке Models:
o	Правой кнопкой → Добавить → Класс...
o	Назовите файл User.cs, нажмите Добавить.
3.	Откройте файл и вставьте туда следующий код:
namespace WpfApp1.Models
{
    public class User
    {
        public int UserID { get; set; }          // ID пользователя
        public string Username { get; set; }     // Логин
        public string Password { get; set; }     // Пароль в открытом виде (для простоты)
        public string FullName { get; set; }     // Полное имя (необязательно)
    }
}
________________________________________
3. Создание класса репозитория UserRepository
Что такое репозиторий?
Это класс, который содержит методы для работы с базой данных (чтение, запись, проверка данных).
________________________________________
Как создать файл UserRepository.cs
1.	В Visual Studio найдите или создайте папку Data рядом с папкой Models:
o	Правой кнопкой по проекту → Добавить → Новая папка → назовите её Data
2.	В папке Data добавьте новый класс:
o	Правой кнопкой по папке Data → Добавить → Класс...
o	Назовите UserRepository.cs, нажмите Добавить
3.	Откройте UserRepository.cs и вставьте туда этот код:
using System.Data.SqlClient;              // Подключаем классы для работы с SQL Server
using WpfApp1.Models;                     // Подключаем модель User

namespace WpfApp1.Data
{
    public class UserRepository
    {
        private readonly string connectionString;

        // Конструктор — при создании объекта указываем строку подключения к базе
        public UserRepository(string connectionString)
        {
            this.connectionString = connectionString;
        }

        // Метод для получения пользователя по имени логина (Username)
        public User GetUserByUsername(string username)
        {
            User user = null;

            using (SqlConnection conn = new SqlConnection(connectionString))   // создаём подключение
            {
                conn.Open();                                                    // открываем подключение

                string sql = "SELECT UserID, Username, Password, FullName FROM Users WHERE Username = @Username";

                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    // Добавляем параметр (защита от SQL инъекций)
                    cmd.Parameters.AddWithValue("@Username", username);

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())   // если нашли пользователя
                        {
                            user = new User
                            {
                                UserID = reader.GetInt32(0),
                                Username = reader.GetString(1),
                                Password = reader.GetString(2),
                                FullName = reader.IsDBNull(3) ? null : reader.GetString(3)
                            };
                        }
                    }
                }
            }

            return user;  // вернём найденного пользователя или null, если не найден
        }
    }
}
________________________________________
4. Создаем окно авторизации LoginWindow
________________________________________
Как добавить новое окно WPF в проект
1.	В Visual Studio:
o	Правой кнопкой по проекту → Добавить → Окно WPF...
o	Назовите его LoginWindow.xaml → нажмите Добавить
2.	Откройте LoginWindow.xaml и замените содержимое на:
<Window x:Class="WpfApp1.LoginWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Вход в систему" Height="180" Width="350" WindowStartupLocation="CenterScreen">
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="80"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <Label Grid.Row="0" Grid.Column="0" Content="Логин:" VerticalAlignment="Center"/>
        <TextBox Grid.Row="0" Grid.Column="1" x:Name="UsernameTextBox" Margin="5" />

        <Label Grid.Row="1" Grid.Column="0" Content="Пароль:" VerticalAlignment="Center"/>
        <PasswordBox Grid.Row="1" Grid.Column="1" x:Name="PasswordBox" Margin="5" />

        <Button Grid.Row="2" Grid.ColumnSpan="2" Content="Войти" Width="80" HorizontalAlignment="Right" Margin="5"
                Click="LoginButton_Click"/>
    </Grid>
</Window>
3.	Откройте LoginWindow.xaml.cs (файл с таким же именем, но с расширением .cs). В Visual Studio он находится рядом с XAML, если не видите — найдите в обозревателе решений.
Вставьте следующий код:
using System.Windows;
using WpfApp1.Data;
using WpfApp1.Models;

namespace WpfApp1
{
    public partial class LoginWindow : Window
    {
        private UserRepository userRepository;

        public User LoggedInUser { get; private set; }  // Чтобы сохранить успешного пользователя

        public LoginWindow()
        {
            InitializeComponent();

            // Настройте строку подключения под вашу базу, если отличается
            string connectionString = @"Data Source=localhost;Initial Catalog=Zhavo;Integrated Security=True;";
            userRepository = new UserRepository(connectionString);
        }

        private void LoginButton_Click(object sender, RoutedEventArgs e)
        {
            string username = UsernameTextBox.Text.Trim();
            string password = PasswordBox.Password;

            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                MessageBox.Show("Введите логин и пароль", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            User user = userRepository.GetUserByUsername(username);

            if (user == null)
            {
                MessageBox.Show("Пользователь не найден", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (password == user.Password)
            {
                LoggedInUser = user;
                DialogResult = true;  // отмечаем, что вход успешен
                Close();              // и закрываем окно
            }
            else
            {
                MessageBox.Show("Неверный пароль", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
    }
}
________________________________________
5. Запускаем LoginWindow перед главным окном
Чтобы ваше приложение сначала запускало окно авторизации, а затем — основное окно, сделаем так:
В файле App.xaml.cs
Найдите файл App.xaml.cs в корне проекта и откройте его.
Замените или добавьте следующий код:
using System.Windows;

namespace WpfApp1
{
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // Создаём окно логина
            LoginWindow loginWindow = new LoginWindow();

            // Показываем окно и ждём результата (ShowDialog блокирует до закрытия окна)
            bool? result = loginWindow.ShowDialog();

            if (result == true)
            {
                // Если пользователь авторизовался успешно, открываем главное окно
                MainWindow mainWindow = new MainWindow();
                mainWindow.Show();
            }
            else
            {
                // Если пользователь закрыл окно логина или ввёл неправильные данные — закрываем приложение
                Shutdown();
            }
        }
    }
}
________________________________________