Суть паттерна я понимаю, но реализовать на примере моего проекта я не могу. У меня есть MainWinow.xaml , в котором есть TextBox и PasswordBox. Мне нужно проверить введенные пользователем данные затем открыть, главное окно приложения. Логику без паттерна я сделал в MainWindow.xaml.cs Базу данных я использовал SQL в свойствах файла я создал строку подключения, а дальше я не знаю что делать и как связывать. Смотрел много тем по MVVM, реализовать не могу. В дальнейшем программа должна выводить статистику,взятую с БД, по каждому студенту и выводить на Главный экран.
using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Data.SqlClient;
using System.Configuration;
namespace Helwent
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
SqlConnection Connection = new SqlConnection(); //Создание экземпляров
SqlCommand CommandSql = new SqlCommand();
SqlDataReader SqlDataReader;
public MainWindow()
{
InitializeComponent();
Connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString(); //Получение строки подключения
}
/// <summary>
/// Верификация Логина и Пароля с БД MSSQL
/// </summary>
/// <param name="Username">Логин</param>
/// <param name="Password">Пароль</param>
/// <returns></returns>
private bool VeryfyUser(string Username,string Password)
{
Connection.Open(); //Открытие подключения
CommandSql.Connection = Connection;
CommandSql.CommandText = "select Status from Users where Username='"+Username+"' and Password='"+Password+"'"; // Запрос к БД га подтверждения данных
SqlDataReader=CommandSql.ExecuteReader(); //Передаёт сроку запроса
if (SqlDataReader.Read()) //Считавает данные из БД
{
if (Convert.ToBoolean(SqlDataReader["Status"]) == true) // Если Status == true, то позволяет входить
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
/// <summary>
/// Выход из окна регистрации и входа
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
Environment.Exit(0);
}
/// <summary>
/// Метод для перемещения окна по экрану
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
/// <summary>
/// Кнопка Входа
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Sign_button_Click(object sender, RoutedEventArgs e)
{
if(Connection.State == System.Data.ConnectionState.Open) // Если подключение открыто,то закрыть
{
Connection.Close();
}
if (VeryfyUser(Login_user.Text, Password_user.Password)) // Если все правильно соообщение о успешном входе
{
}
else
{
Login_user.BorderBrush = Brushes.Red;
Password_user.BorderBrush= Brushes.Red;
}
}
}
}
