Задание
Разработать приложение Автошкола на языке C# для учета ее деятельности. Приложение должно вести учет студентов, преподавателей, расписания занятий.
Функционал программы
- учет студентов
- добавление данных студентов
- редактирование данных студентов
- удаление студентов
- регистрация
- авторизация
- кабинет пользователей
Остальной функционал программы в стадии разработки.
Фрагмент программного кода
using AutoSchool.BL.Interfaces;
using AutoSchool.BL.Models;
using System.Linq;
using System.Windows;
namespace AutoSchool.UI
{
/// <summary>
/// Логика взаимодействия для AddStudentsWindow.xaml
/// </summary>
public partial class AddStudentsWindow : Window
{
/// <summary>
/// Список допустимых результатов
/// </summary>
private static readonly string[] Results = { "Сдал", "Не сдал" };
/// <summary>
/// Поле хранит идентификатор товара
/// </summary>
private int _id;
public AddStudentsWindow()
{
InitializeComponent();
// Передаем допустимые значения
cbResult.ItemsSource = Results;
// Задаем начальное значение
cbResult.SelectedIndex = 0;
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
int receipt;
int? examDate = null;
if (string.IsNullOrEmpty(tbStudentName.Text))
{
MessageBox.Show("Поле Студент не должно быть пустым", "Проверка");
return;
}
if (string.IsNullOrEmpty(tbGender.Text))
{
MessageBox.Show("Поле Пол не может быть пустым", "Проверка");
return;
}
if (!int.TryParse(tbReceiptDate.Text, out receipt ))
{
MessageBox.Show("Дата поступления должна быть целым числом", "Проверка");
return;
}
if (!string.IsNullOrEmpty(tbExamDate.Text))
{
int intExam;
if (!int.TryParse(tbExamDate.Text, out intExam))
{
MessageBox.Show("Дата экзамена должна быть целым числом", "Проверка");
return;
}
if (intExam < receipt)
{
MessageBox.Show("Дата экзамена должна быть больше даты поступления", "Проверка");
return;
}
examDate = intExam;
}
// Создаем объект для передачи данных
StudentDto student = new StudentDto();
// Заполняем объект данными
student.StudentName = tbStudentName.Text;
student.ReceiptDate = receipt;
student.ExamDate = examDate;
student.Gender = tbGender.Text;
student.Result = cbResult.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 || !Results.Contains(student.Result))
return;
// сохраняем id студента
_id = student.Id;
// заполняем визуальные компоненты для отображения данных
tbStudentName.Text = student.StudentName;
tbReceiptDate.Text = student.ReceiptDate.ToString();
if (student.ExamDate.HasValue)
tbExamDate.Text = student.ExamDate.Value.ToString();
tbGender.Text = student.Gender;
cbResult.SelectedItem = student.Result;
}
}
}
Скриншот архива с проектом

Пояснения по запуску программы
Запускаем Visual Studio 2022, запускаем проект. Переходим на мой YouTube-канал: Сергей Галкин - YouTube и смотрим видео-уроки по разработке приложения.
Телеграм
-