Задание
Разработать программу с БД для учета посещаемости занятий.
Функционал программы
- Учет учеников / студентов
- Учет преподавателей (в разработке)
- Добавление / изменение / удаление данных
- Регистрация / авторизация / кабинет пользователя
Фрагмент программного кода
using School.BL.Interfaces; using School.BL.Models; using System.Linq; using System.Windows; namespace School.UI { /// <summary> /// Логика взаимодействия для AddStudentsWindow.xaml /// </summary> public partial class AddStudentsWindow : Window { /// <summary> /// Список преподавателей /// </summary> private static readonly string[] Teachers = { "Иванов И.И.", "Петрова А.В.", "Смирнова А.Н." }; /// <summary> /// Поле хранит идентификатор товара /// </summary> private int _id; public AddStudentsWindow() { InitializeComponent(); // Передаем допустимые значения cbTeacher.ItemsSource = Teachers; // Задаем начальное значение cbTeacher.SelectedIndex = 0; } private void BtnCancel_Click(object sender, RoutedEventArgs e) { Close(); } private void BtnSave_Click(object sender, RoutedEventArgs e) { int pass; int? visit = null; if (string.IsNullOrEmpty(tbStudentName.Text)) { MessageBox.Show("Поле Ученик не должно быть пустым", "Проверка"); return; } if (string.IsNullOrEmpty(tbGroup.Text)) { MessageBox.Show("Поле Класс не может быть пустым", "Проверка"); return; } if (!int.TryParse(tbNumberPasses.Text, out pass)) { MessageBox.Show("Кол-во пропусков должно быть целым числом", "Проверка"); return; } if (!string.IsNullOrEmpty(tbNumberVisits.Text)) { int intVisit; if (!int.TryParse(tbNumberVisits.Text, out intVisit)) { MessageBox.Show("Кол-во посещений должно быть целым числом", "Проверка"); return; } if (intVisit < pass) { MessageBox.Show("Кол-во посещений должно быть больше кол-ва пропусков", "Проверка"); return; } visit = intVisit; } // Создаем объект для передачи данных StudentDto student = new StudentDto(); // Заполняем объект данными student.StudentName = tbStudentName.Text; student.NumberPasses = pass; student.NumberVisits = visit; student.Group = tbGroup.Text; student.Teacher = cbTeacher.SelectedItem.ToString(); // Именно тут запрашиваем реализованную раннее задачу по работе с учениками IStudentProcess studentProcess = ProcessFactory.GetStudentProcess(); // если это новый объект - сохраняем его if (_id == 0) { // Сохраняем учеников studentProcess.Add(student); } else // иначе обновляем { // копируем обратно идентификатор объекта student.Id = _id; // обновляем studentProcess.Update(student); } // и закрываем форму Close(); } public void Load(StudentDto student) { // если объект не существует, или преподаватель не в списке допустимых, выходим if (student == null || !Teachers.Contains(student.Teacher)) return; // сохраняем id ученика _id = student.Id; // заполняем визуальные компоненты для отображения данных tbStudentName.Text = student.StudentName; tbNumberPasses.Text = student.NumberPasses.ToString(); if (student.NumberVisits.HasValue) tbNumberVisits.Text = student.NumberVisits.Value.ToString(); tbGroup.Text = student.Group; cbTeacher.SelectedItem = student.Teacher; } } }
Скриншот архива с проектом
Пояснения по запуску программы
Запустить Visual Studio, запустить проект. Ссылка на инструкцию: https://youtu.be/jqsnC23HUm0
admin