202 lines
7.4 KiB
C#
202 lines
7.4 KiB
C#
|
using ElectronicDiaryAbstractions.Models;
|
|||
|
using ElectronicDiaryAbstractions.WorkAbstractions;
|
|||
|
|
|||
|
namespace ElectronicDiaryView
|
|||
|
{
|
|||
|
public partial class FormTeacher : Form
|
|||
|
{
|
|||
|
private readonly ITeacherWork _teacherLogic;
|
|||
|
|
|||
|
private readonly IUserWork _userLogic;
|
|||
|
|
|||
|
private readonly ISubjectWork _subjectLogic;
|
|||
|
|
|||
|
public FormTeacher(ITeacherWork teacherLogic, IUserWork userLogic, ISubjectWork subjectLogic)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
_teacherLogic = teacherLogic;
|
|||
|
_userLogic = userLogic;
|
|||
|
_subjectLogic = subjectLogic;
|
|||
|
}
|
|||
|
|
|||
|
private void FormTeacher_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
|
|||
|
private void LoadData()
|
|||
|
{
|
|||
|
var teachers = _teacherLogic.GetAll();
|
|||
|
|
|||
|
dataGridView.Rows.Clear();
|
|||
|
|
|||
|
if (dataGridView.ColumnCount == 0)
|
|||
|
{
|
|||
|
dataGridView.Columns.Add("Id", "ID");
|
|||
|
dataGridView.Columns.Add("Name", "Имя учителя");
|
|||
|
dataGridView.Columns.Add("UserId", "UserId");
|
|||
|
dataGridView.Columns["UserId"].Visible = false;
|
|||
|
dataGridView.Columns.Add("UserLogin", "Логин");
|
|||
|
}
|
|||
|
|
|||
|
dataGridView.Columns["Name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|||
|
dataGridView.Columns["UserLogin"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
|||
|
|
|||
|
comboBoxSubject.DataSource = _subjectLogic.GetAll();
|
|||
|
comboBoxSubject.DisplayMember = "Name";
|
|||
|
comboBoxSubject.ValueMember = "Id";
|
|||
|
|
|||
|
foreach (var teacher in teachers)
|
|||
|
{
|
|||
|
dataGridView.Rows.Add(teacher.Id, teacher.LastName + " " + teacher.FirstName + " " + teacher.Patronymic, teacher.UserId, _userLogic.Get(teacher.UserId)?.Login);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonCreate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
int someNumber = _userLogic.GetAll().Max(user => user.Id) + 1;
|
|||
|
User newUser = new()
|
|||
|
{
|
|||
|
Login = "login" + someNumber,
|
|||
|
Email = "email" + someNumber,
|
|||
|
Password = "password" + someNumber,
|
|||
|
PhoneNumber = "phonenumber" + someNumber,
|
|||
|
AccessLevel = "Учитель",
|
|||
|
};
|
|||
|
_userLogic.Create(newUser);
|
|||
|
int newUserId = _userLogic.GetAll().Max(user => user.Id);
|
|||
|
|
|||
|
Teacher newTeacher = new()
|
|||
|
{
|
|||
|
LastName = textBoxLastName.Text,
|
|||
|
FirstName = textBoxFirstName.Text,
|
|||
|
Patronymic = textBoxPatronymic.Text,
|
|||
|
UserId = newUserId,
|
|||
|
};
|
|||
|
|
|||
|
_teacherLogic.Create(newTeacher);
|
|||
|
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonUpdate_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
|
|||
|
int teacherId = Convert.ToInt32(selectedRow.Cells["Id"].Value);
|
|||
|
|
|||
|
Teacher updatedTeacher = new()
|
|||
|
{
|
|||
|
Id = teacherId,
|
|||
|
LastName = textBoxLastName.Text,
|
|||
|
FirstName = textBoxFirstName.Text,
|
|||
|
Patronymic = textBoxPatronymic.Text,
|
|||
|
};
|
|||
|
|
|||
|
_teacherLogic.Update(updatedTeacher);
|
|||
|
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, информацию о котором необходимо обновить");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonDelete_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
|
|||
|
int teacherId = Convert.ToInt32(selectedRow.Cells["Id"].Value);
|
|||
|
|
|||
|
_teacherLogic.Delete(teacherId);
|
|||
|
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, информацию о котором необходимо удалить");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonGetSubjects_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
var service = Program.ServiceProvider?.GetService(typeof(FormSubjects));
|
|||
|
if (service is FormSubjects form)
|
|||
|
{
|
|||
|
form.Id = Convert.ToInt32(dataGridView.SelectedRows[0].Cells["Id"].Value);
|
|||
|
form.IsStudent = false;
|
|||
|
form.ShowDialog();
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, информацию о предметах которого необходимо посмотреть");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonAddSubject_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
|
|||
|
int teacherId = Convert.ToInt32(selectedRow.Cells["Id"].Value);
|
|||
|
|
|||
|
_teacherLogic.AddTeacherSubject(teacherId, ((Subject)comboBoxSubject.SelectedItem).Id);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, с которым необходимо связать предмет");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonDeleteSubject_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
|
|||
|
int teacherId = Convert.ToInt32(selectedRow.Cells["Id"].Value);
|
|||
|
|
|||
|
_teacherLogic.DeleteTeacherSubject(teacherId, ((Subject)comboBoxSubject.SelectedItem).Id);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, от которого необходимо отвязать предмет");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void ButtonDeleteSubjects_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (dataGridView.SelectedRows.Count > 0)
|
|||
|
{
|
|||
|
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
|
|||
|
int teacherId = Convert.ToInt32(selectedRow.Cells["Id"].Value);
|
|||
|
|
|||
|
_teacherLogic.DeleteAllTeacherSubjects(teacherId);
|
|||
|
|
|||
|
LoadData();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
MessageBox.Show("Пожалуйста, выберите учителя, информацию о предметах которого необходимо удалить");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
|
|||
|
{
|
|||
|
if (e.RowIndex >= 0)
|
|||
|
{
|
|||
|
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
|
|||
|
string[] nameParts = (row != null && row.Cells["Name"] != null) ? row.Cells["Name"].Value.ToString().Split(' ') : new string[] { "", "", "" };
|
|||
|
textBoxLastName.Text = nameParts[0];
|
|||
|
textBoxFirstName.Text = nameParts[1];
|
|||
|
textBoxPatronymic.Text = nameParts[2];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|