Файл: Работа Интерфейс приложения. Страница регистрации, администратора и ученика. Функционал авторизации и регистрации.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 24
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Работа 3. Интерфейс приложения. Страница регистрации, администратора и ученика. Функционал авторизации и регистрации.
Создайте обработчик события Click для кнопки Войти.
Пояснения к коду:
Когда идет работа с данными рекомендуют использовать try..catch (обработку исключений).
Внутри оператора try нужно написать процесс подключения к базе данных и работы с ней.
Создадим динамическую переменную userObj. Будем внутри нее хранить данные, получаемые из полей для ввода логина и пароля.
Обращаться к БД будем посредством созданного нами ранее класса AppConnect и работать непосредственно с ним.
Модель modelOdb видит входящие в БД таблицы в качестве атрибутов (User).
При наборе строки
var userObj = AppConnect.modelOdb.User.
после очередной точки перечисляются методы работы с LINQ-запросами и EntityFramework.
Нам нужен метод FirstOrDefault (он возвращает первый элемент последовательности…).
Создаем анонимную переменную x, используемую внутри LINQ-запроса (аналогично параметру цикла for).
Возвращаем в переменную userObj все значения из таблицы User, которые совпали по введенным в текстовые поля логину и паролю.
Если в БД пользователя нет, то нужно вывести об этом сообщение (if…), иначе – нужно вывести приветствие для соответствующего пользователя.
Запустите проект, убедитесь, что на экран выводится каждое из организованных в коде приветствий и уведомлений!
Страница регистрации
В папке PageMain создайте страницу PageCreateAcc. Установите высоту страницы 350, ширину – 800.
Создадим интерфейс для возможности отправки в БД введенных значений нового пользователя.
Организуйте разметку страницы в соответствии с рисунком.
Используйте контейнер StackPanel с вертикальной ориентацией, разместите его в центре страницы.
В нем организуйте еще 4 контейнера StackPanelс горизонтальной ориентацией.
Для ввода пароля используйте компонент TextBox, для подтверждения пароля – PasswordBox.
Оформление компонентов организуйте с помощью стилей, шаблоны которых пропишите в файле
App.xaml.
По нажатию на кнопку Регистрация страницы Авторизация должна открываться страница для создания аккаунта ученика. При нажатии на кнопку Назад страницы Регистрация мы должны вернуться на страницу Авторизация.
Создайте обработчик события Click для кнопки Регистрация:
Создайте обработчик события Click для кнопки Назад:
Пояснения к коду:
Все действия на главном окне у нас выполняются во фрейме.
Этот фрейм хранится в объекте frameMain.
Мы загрузили наш фрейм с главной страницы.
Запустите проект, убедитесь, что осуществляются соответствующие переходы по кнопкам Регистрация и Назад!
Функционал прохождения регистрации ученика
-
Кнопка Создать должна быть недоступна, пока в поле подтверждения пароля вводимое значение не совпадет с первоначальным. А поле подтверждения пароля окрашивается красным пока нет совпадения и зеленым в момент совпадения значений в полях.
Для этого:
-
Кнопку Создать сделать изначально неактивной IsEnabled="False" -
Создайте обработчик события PasswordChanged компонента PasswordBox:
Запустите проект. Убедитесь, что кнопка Создать и поле подтверждения пароля ведут себя как было запланировано!
-
Внутри обработчика события Click кнопки Создать нужно организовать добавление в базу данных значений, вводимых пользователем в соответствующие текстовые поля. Для этого необходимо обратиться к таблице User базы данных, и эта таблица должна получить значения из компонентов страницы Регистрация (Имя, Логин и Пароль).
Пояснения к коду:
Сначала нужно проверить, есть ли пользователь с таким логином в системе.
Если значения, возвращаемые из таблицы User по полю Login имеются (применяем для этой цели метод
Count LINQ-запроса), то вывести уведомление о том, что пользователь с таким логином существует в БД.
Для добавления данных нового пользователя нужно использовать конструкцию try..catch.
Создаем новый объект UserObj класса User, присваиваем его свойствам значения из компонентов страницы Регистрация. Регистрировать можно только учеников, поэтому присваиваем значение 2 полю idRole. Записываем созданный объект в таблицу БД User (метод Add) и сохраняем изменения (метод SaveChanges). По окончании выводим уведомление о проделанной операции.
Запустите проект, зарегистрируйте нового ученика, осуществите вход под его аккаунтом!
-
Измените интерфейс таким образом, чтобы название проекта отображалось в строке заголовка главного окна, а в верхней части окна каждый раз располагалось название открытой страницы (Окно авторизации, Окно регистрации).
Изменения для этого вносим в разметку: добавляем элемент TextBlock и в его свойстве Text указываем источник текста – Title открытой страницы (содержимого фрейма).
Запустите проект, убедитесь в отображении заголовков открытых страниц!
Страница администратора
Добавьте в проект папку PageAdmin и создайте в ней страницу PageMenuAdmin (высота 350).
Организуйте разметку страницы в соответствии с рисунком. Используйте контейнер StackPanel, расположите его по центру страницы. Организуйте переход к этой странице после авторизации.
Страница ученика (студента)
Добавьте в проект папку PageStudent и создайте в ней страницу PageAccountStudent (высота 350).
Организуйте разметку страницы в соответствии с рисунком. Используйте контейнеры StackPanel, Организуйте переход к этой странице после авторизации.
Запустите проект, убедитесь, что переходы к страницам осуществляются и заголовки страниц выводятся в окне!