Скриншот архива с проектом

Cтруктура проекта

Задание
Разработать программу с БД для учета посещаемости занятий.
Функционал программы
- Учет учеников / студентов
- Учет преподавателей (в разработке)
- Добавление / изменение / удаление данных
- Регистрация / авторизация / кабинет пользователя
Фрагмент программного кода
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
Телеграм
-