diff --git a/ProjectShedule/ProjectShedule/Entities/Classroom.cs b/ProjectShedule/ProjectShedule/Entities/Classroom.cs index c125dee..e099c55 100644 --- a/ProjectShedule/ProjectShedule/Entities/Classroom.cs +++ b/ProjectShedule/ProjectShedule/Entities/Classroom.cs @@ -1,12 +1,19 @@ using ProjectShedule.Entities.Enums; +using System.ComponentModel; namespace ProjectShedule.Entities; public class Classroom { public int Id { get;private set; } + + [DisplayName ("Вместимость")] public int Size { get; private set; } + + [DisplayName("Номер аудитории")] public string Name { get; private set; } = String.Empty; + + [DisplayName("Тип аудитории")] public ClassType ClassType { get; private set; } public static Classroom CreateClassroom(int id, int size, string name, ClassType classtype) diff --git a/ProjectShedule/ProjectShedule/Entities/Curriculum.cs b/ProjectShedule/ProjectShedule/Entities/Curriculum.cs index 888e7d7..267243d 100644 --- a/ProjectShedule/ProjectShedule/Entities/Curriculum.cs +++ b/ProjectShedule/ProjectShedule/Entities/Curriculum.cs @@ -1,8 +1,12 @@ -namespace ProjectShedule.Entities; +using System.ComponentModel; + +namespace ProjectShedule.Entities; public class Curriculum { public int Id { get; private set; } + + [DisplayName("Направление")] public string Direction { get; private set; } = string.Empty; public static Curriculum CreateCurriculum(int id, string direction) { diff --git a/ProjectShedule/ProjectShedule/Entities/CurriculumSubject.cs b/ProjectShedule/ProjectShedule/Entities/CurriculumSubject.cs index b190bf8..e47b2fd 100644 --- a/ProjectShedule/ProjectShedule/Entities/CurriculumSubject.cs +++ b/ProjectShedule/ProjectShedule/Entities/CurriculumSubject.cs @@ -1,13 +1,30 @@ using ProjectShedule.Entities.Enums; +using System.ComponentModel; namespace ProjectShedule.Entities; public class CurriculumSubject { public int Id { get; set; } + + [DisplayName("Дата составления")] public DateTime Date { get; private set; } + + [Browsable(false)] public int CurriculumId { get; private set; } + + [DisplayName("Направление")] + public string CurriculumName { get; private set; } = string.Empty; + + [DisplayName("Предметы")] + public string Subject => SubjectSubject != null ? + string.Join(", ",SubjectSubject.Select(x => $"{x.SubjectName} {x.LessonsCount}")) : + string.Empty; + + [Browsable(false)] public IEnumerable SubjectSubject { get; private set; } = []; + + [DisplayName("Курс")] public Course Course { get; private set; } public static CurriculumSubject CreateCurriculumSubject(int id, DateTime date, int curriculumId, Course course, IEnumerable subjectSubjects) @@ -21,15 +38,11 @@ public class CurriculumSubject SubjectSubject = subjectSubjects }; } - public static CurriculumSubject CreateCurriculumSubject(TempCurriculumSubject tempCurriculumSubject, IEnumerable subjectSubject) + public void SetSubjectSubject(IEnumerable subjectSubject) { - return new CurriculumSubject - { - Id = tempCurriculumSubject.Id, - Date = tempCurriculumSubject.Date, - CurriculumId = tempCurriculumSubject.CurriculumId, - Course = tempCurriculumSubject.Course, - SubjectSubject = subjectSubject - }; + if (subjectSubject != null && subjectSubject.Any()) + { + SubjectSubject = subjectSubject; + } } } diff --git a/ProjectShedule/ProjectShedule/Entities/Enums/ClassType.cs b/ProjectShedule/ProjectShedule/Entities/Enums/ClassType.cs index 6300a8f..eea6f9e 100644 --- a/ProjectShedule/ProjectShedule/Entities/Enums/ClassType.cs +++ b/ProjectShedule/ProjectShedule/Entities/Enums/ClassType.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectShedule.Entities.Enums; +namespace ProjectShedule.Entities.Enums; public enum ClassType { diff --git a/ProjectShedule/ProjectShedule/Entities/Enums/Course.cs b/ProjectShedule/ProjectShedule/Entities/Enums/Course.cs index 4ee2861..d150097 100644 --- a/ProjectShedule/ProjectShedule/Entities/Enums/Course.cs +++ b/ProjectShedule/ProjectShedule/Entities/Enums/Course.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectShedule.Entities.Enums; +namespace ProjectShedule.Entities.Enums; public enum Course { diff --git a/ProjectShedule/ProjectShedule/Entities/Enums/PairNumber.cs b/ProjectShedule/ProjectShedule/Entities/Enums/PairNumber.cs index 4378958..b252618 100644 --- a/ProjectShedule/ProjectShedule/Entities/Enums/PairNumber.cs +++ b/ProjectShedule/ProjectShedule/Entities/Enums/PairNumber.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectShedule.Entities.Enums; +namespace ProjectShedule.Entities.Enums; [Flags] public enum PairNumber diff --git a/ProjectShedule/ProjectShedule/Entities/Shedule.cs b/ProjectShedule/ProjectShedule/Entities/Shedule.cs index a2ca9f2..2db1f0f 100644 --- a/ProjectShedule/ProjectShedule/Entities/Shedule.cs +++ b/ProjectShedule/ProjectShedule/Entities/Shedule.cs @@ -1,18 +1,48 @@ -using ProjectShedule.Entities.Enums; +using System.ComponentModel; +using ProjectShedule.Entities.Enums; namespace ProjectShedule.Entities; public class Shedule { public int Id { get; private set; } + + + [DisplayName("Дата")] public DateTime Date { get; private set; } + + + [DisplayName("Номера пар")] public PairNumber PairNumber { get; private set; } + + + [DisplayName("Количество пар")] public int PairCount { get; private set; } + + [Browsable(false)] public int StudentsGroupId { get; private set; } + + [Browsable(false)] public int TeacherId { get; private set; } + + [Browsable(false)] public int SubjectId { get; private set; } + + [Browsable(false)] public int ClassroomId { get; private set; } + [DisplayName("Грппа студентов")] + public string StudentsGroupName { get; private set; } = string.Empty; + + [DisplayName("Преподаватель")] + public string TeacherName { get; private set; } = string.Empty; + + [DisplayName("Предмет")] + public string SubjectName { get; private set; } = string.Empty; + + [DisplayName("Аудитория")] + public string ClassroomName { get; private set; } = string.Empty; + public static Shedule CreateOperation(int id, DateTime date, PairNumber pairNumber, int pairCount , int studentsGroupId, int teacherId, int subjectId, int classroomId) diff --git a/ProjectShedule/ProjectShedule/Entities/StudentsGroup.cs b/ProjectShedule/ProjectShedule/Entities/StudentsGroup.cs index 092af9a..35267b2 100644 --- a/ProjectShedule/ProjectShedule/Entities/StudentsGroup.cs +++ b/ProjectShedule/ProjectShedule/Entities/StudentsGroup.cs @@ -1,14 +1,27 @@ using ProjectShedule.Entities.Enums; +using System.ComponentModel; namespace ProjectShedule.Entities; public class StudentsGroup { public int Id { get; private set; } + + [DisplayName("Количество студентов")] public int StudentsCount { get; private set; } + + [DisplayName("Номер группы")] public string GroupNumber { get; private set; } = String.Empty; + + [DisplayName("Курс")] public Course Course { get; private set; } + + [Browsable(false)] public int CurriculumId { get; private set; } + + [DisplayName("Направление")] + public string CurriculumName { get; private set; } = string.Empty; + public static StudentsGroup CreateGroup(int id, int studentsCount, string groupNumber, Course course, int curriculumId) { return new StudentsGroup diff --git a/ProjectShedule/ProjectShedule/Entities/Subject.cs b/ProjectShedule/ProjectShedule/Entities/Subject.cs index 5632319..c7f6840 100644 --- a/ProjectShedule/ProjectShedule/Entities/Subject.cs +++ b/ProjectShedule/ProjectShedule/Entities/Subject.cs @@ -1,8 +1,12 @@ -namespace ProjectShedule.Entities; +using System.ComponentModel; + +namespace ProjectShedule.Entities; public class Subject { public int Id { get; private set; } + + [DisplayName("Название предмета")] public string Name { get; private set; } = String.Empty; public static Subject CreateSubject(int id, string name) { diff --git a/ProjectShedule/ProjectShedule/Entities/SubjectSubject.cs b/ProjectShedule/ProjectShedule/Entities/SubjectSubject.cs index 401758b..ae71603 100644 --- a/ProjectShedule/ProjectShedule/Entities/SubjectSubject.cs +++ b/ProjectShedule/ProjectShedule/Entities/SubjectSubject.cs @@ -1,12 +1,18 @@  +using System.ComponentModel; + namespace ProjectShedule.Entities; public class SubjectSubject { public int Id { get; private set; } + public int SubjectId { get; private set; } + public int LessonsCount { get; private set; } + public string SubjectName { get; private set; } = string.Empty; + public static SubjectSubject CreateOperation(int id, int subjectId, int lessonsCount) { return new SubjectSubject diff --git a/ProjectShedule/ProjectShedule/Entities/Teacher.cs b/ProjectShedule/ProjectShedule/Entities/Teacher.cs index 08b6512..bd2fa74 100644 --- a/ProjectShedule/ProjectShedule/Entities/Teacher.cs +++ b/ProjectShedule/ProjectShedule/Entities/Teacher.cs @@ -1,10 +1,18 @@ -namespace ProjectShedule.Entities; +using System.ComponentModel; + +namespace ProjectShedule.Entities; public class Teacher { public int Id { get; private set; } + + [DisplayName("Имя")] public string FirstName { get; private set; } = string.Empty; + + [DisplayName("Фамилия")] public string LastName { get; private set; } = string.Empty; + + public string FullName => $"{FirstName} {LastName}"; public static Teacher CreateTeacher(int id, string firstName, string lastName) { return new Teacher diff --git a/ProjectShedule/ProjectShedule/Entities/TempCurriculumSubject.cs b/ProjectShedule/ProjectShedule/Entities/TempCurriculumSubject.cs deleted file mode 100644 index 614eb69..0000000 --- a/ProjectShedule/ProjectShedule/Entities/TempCurriculumSubject.cs +++ /dev/null @@ -1,13 +0,0 @@ -using ProjectShedule.Entities.Enums; - -namespace ProjectShedule.Entities; - -public class TempCurriculumSubject -{ - public int Id { get; private set; } - public DateTime Date { get; private set; } - public int CurriculumId { get; private set; } - public int SubjectId { get; private set; } - public int LessonsCount { get; private set; } - public Course Course { get; private set; } -} diff --git a/ProjectShedule/ProjectShedule/Forms/FormClassrooms.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormClassrooms.Designer.cs index 945497d..87ed026 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormClassrooms.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormClassrooms.Designer.cs @@ -87,9 +87,9 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridView.Dock = DockStyle.Fill; dataGridView.Location = new Point(0, 0); dataGridView.MultiSelect = false; dataGridView.Name = "dataGridView"; diff --git a/ProjectShedule/ProjectShedule/Forms/FormClassrooms.cs b/ProjectShedule/ProjectShedule/Forms/FormClassrooms.cs index 9d0c8b6..7a731cf 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormClassrooms.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormClassrooms.cs @@ -79,7 +79,11 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _classroomRepository.ReadClassroom(); + private void LoadList() + { + dataGridView.DataSource = _classroomRepository.ReadClassroom(); + dataGridView.Columns["Id"].Visible = false; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.Designer.cs index ddfa4f2..3ee6932 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.Designer.cs @@ -74,6 +74,7 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView.Location = new Point(0, 0); diff --git a/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.cs b/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.cs index dd05a1e..69d7374 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormCurriculumSubjects.cs @@ -40,7 +40,12 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _curriculumSubjectRepository.ReadCurriculumSubject(); + private void LoadList() + { + dataGridView.DataSource = _curriculumSubjectRepository.ReadCurriculumSubject(); + dataGridView.Columns["Id"].Visible = false; + dataGridView.Columns["Date"].DefaultCellStyle.Format = "dd MMMM yyyy"; + } private void buttonDel_Click(object sender, EventArgs e) { diff --git a/ProjectShedule/ProjectShedule/Forms/FormCurriculums.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormCurriculums.Designer.cs index c173d44..de16340 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormCurriculums.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormCurriculums.Designer.cs @@ -87,6 +87,7 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView.Location = new Point(0, 0); diff --git a/ProjectShedule/ProjectShedule/Forms/FormCurriculums.cs b/ProjectShedule/ProjectShedule/Forms/FormCurriculums.cs index 8a2d4a8..b4187a0 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormCurriculums.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormCurriculums.cs @@ -80,7 +80,12 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _curriculumRepository.ReadCurriculum(); + private void LoadList() + { + dataGridView.DataSource = _curriculumRepository.ReadCurriculum(); + dataGridView.Columns["Id"].Visible = false; + } + private bool TryGetIdentifierFromSelectedRow(out int id) { id = 0; diff --git a/ProjectShedule/ProjectShedule/Forms/FormGroups.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormGroups.Designer.cs index 501ef92..ed18ab9 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormGroups.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormGroups.Designer.cs @@ -87,6 +87,7 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView.Location = new Point(0, 0); @@ -96,7 +97,7 @@ dataGridView.RowHeadersVisible = false; dataGridView.RowHeadersWidth = 51; dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dataGridView.Size = new Size(626, 354); + dataGridView.Size = new Size(627, 354); dataGridView.TabIndex = 5; // // FormGroups diff --git a/ProjectShedule/ProjectShedule/Forms/FormGroups.cs b/ProjectShedule/ProjectShedule/Forms/FormGroups.cs index 3fc0c54..2dd1ccf 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormGroups.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormGroups.cs @@ -79,7 +79,11 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _groupRepository.ReadGroup(); + private void LoadList() + { + dataGridView.DataSource = _groupRepository.ReadGroup(); + dataGridView.Columns["Id"].Visible = false; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/ProjectShedule/ProjectShedule/Forms/FormShedule.cs b/ProjectShedule/ProjectShedule/Forms/FormShedule.cs index c8ec8eb..d305d62 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormShedule.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormShedule.cs @@ -23,7 +23,7 @@ namespace ProjectShedule.Forms comboBoxGroup.ValueMember = "Id"; comboBoxTeacher.DataSource = teacherRepository.ReadTeacher(); - comboBoxTeacher.DisplayMember = "LastName"; + comboBoxTeacher.DisplayMember = "FullName"; comboBoxTeacher.ValueMember = "Id"; comboBoxSubject.DataSource = subjectRepository.ReadSubject(); diff --git a/ProjectShedule/ProjectShedule/Forms/FormShedules.cs b/ProjectShedule/ProjectShedule/Forms/FormShedules.cs index 5076e43..5fd5d83 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormShedules.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormShedules.cs @@ -42,7 +42,12 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при загрузке", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _sheduleRepository.ReadShedule(); + private void LoadList() + { + dataGridView.DataSource = _sheduleRepository.ReadShedule(); + dataGridView.Columns["Id"].Visible = false; + dataGridView.Columns["Date"].DefaultCellStyle.Format = "dd MMMM yyyy"; + } private void buttonDel_Click(object sender, EventArgs e) { diff --git a/ProjectShedule/ProjectShedule/Forms/FormSubjects.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormSubjects.Designer.cs index 974c208..94a4b20 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormSubjects.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormSubjects.Designer.cs @@ -87,9 +87,10 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridView.Location = new Point(0, 0); + dataGridView.Location = new Point(3, 12); dataGridView.MultiSelect = false; dataGridView.Name = "dataGridView"; dataGridView.ReadOnly = true; diff --git a/ProjectShedule/ProjectShedule/Forms/FormSubjects.cs b/ProjectShedule/ProjectShedule/Forms/FormSubjects.cs index a371e76..e0a7ed5 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormSubjects.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormSubjects.cs @@ -79,7 +79,12 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _subjectRepository.ReadSubject(); + private void LoadList() + { + dataGridView.DataSource = _subjectRepository.ReadSubject(); + dataGridView.Columns["Id"].Visible = false; + } + private bool TryGetIdentifierFromSelectedRow(out int id) { id = 0; diff --git a/ProjectShedule/ProjectShedule/Forms/FormTeachers.Designer.cs b/ProjectShedule/ProjectShedule/Forms/FormTeachers.Designer.cs index a5cf6ef..fb52d2c 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormTeachers.Designer.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormTeachers.Designer.cs @@ -87,9 +87,9 @@ dataGridView.AllowUserToDeleteRows = false; dataGridView.AllowUserToResizeColumns = false; dataGridView.AllowUserToResizeRows = false; + dataGridView.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridView.Dock = DockStyle.Fill; dataGridView.Location = new Point(0, 0); dataGridView.MultiSelect = false; dataGridView.Name = "dataGridView"; @@ -97,7 +97,7 @@ dataGridView.RowHeadersVisible = false; dataGridView.RowHeadersWidth = 51; dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dataGridView.Size = new Size(800, 353); + dataGridView.Size = new Size(625, 353); dataGridView.TabIndex = 3; // // FormTeachers diff --git a/ProjectShedule/ProjectShedule/Forms/FormTeachers.cs b/ProjectShedule/ProjectShedule/Forms/FormTeachers.cs index 80d9872..421cdb9 100644 --- a/ProjectShedule/ProjectShedule/Forms/FormTeachers.cs +++ b/ProjectShedule/ProjectShedule/Forms/FormTeachers.cs @@ -79,7 +79,13 @@ namespace ProjectShedule.Forms MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - private void LoadList() => dataGridView.DataSource = _teacherRepository.ReadTeacher(); + private void LoadList() + { + dataGridView.DataSource = _teacherRepository.ReadTeacher(); + dataGridView.Columns["Id"].Visible = false; + dataGridView.Columns["FullName"].Visible = false; + } + private bool TryGetIdentifierFromSelectedRow(out int id) { id = 0; diff --git a/ProjectShedule/ProjectShedule/Repositories/Implementations/CurriculumSubjectRepository.cs b/ProjectShedule/ProjectShedule/Repositories/Implementations/CurriculumSubjectRepository.cs index 0b358f5..6d01cb1 100644 --- a/ProjectShedule/ProjectShedule/Repositories/Implementations/CurriculumSubjectRepository.cs +++ b/ProjectShedule/ProjectShedule/Repositories/Implementations/CurriculumSubjectRepository.cs @@ -81,19 +81,46 @@ public class CurriculumSubjectRepository : ICurriculumSubjectRepository throw; } } - public IEnumerable ReadCurriculumSubject(DateTime? dateForm = null, DateTime? dateTo = null, int? subjectId = null) + public IEnumerable ReadCurriculumSubject(DateTime? dateFrom = null, DateTime? dateTo = null, int? subjectId = null) { _logger.LogInformation("Получение всех объектов"); try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT cs.*, ss.SubjectId, ss.LessonsCount FROM CurriculumSubject cs - INNER JOIN SubjectSubject ss on ss.CurriculumSubjectId = cs.Id"; - var curriculumSubjects = connection.Query(querySelect); + var querySelect = $@"SELECT + cs.*, + c.Direction as CurriculumName, + ss.SubjectId, + ss.LessonsCount, + s.Name as SubjectName + FROM CurriculumSubject cs + LEFT JOIN Curriculum c on c.Id = cs.CurriculumId + INNER JOIN SubjectSubject ss on ss.CurriculumSubjectId = cs.Id + LEFT JOIN Subject s on s.Id = ss.SubjectId"; + // {builder.Build()}"; + var subjectsDict = new Dictionary>(); + + var curriculumSubjects = connection.Query(querySelect, + (subject, curriculumSubject) => + { + if (!subjectsDict.TryGetValue(subject.Id, out var cs)) + { + cs = []; + subjectsDict.Add(subject.Id, cs); + } + + cs.Add(curriculumSubject); + return subject; + }, splitOn: "SubjectId", param: new { dateFrom, dateTo, subjectId }); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(curriculumSubjects)); - return curriculumSubjects.GroupBy(x => x.Id, y => y, (key, value) => CurriculumSubject.CreateCurriculumSubject(value.First(), - value.Select(z => SubjectSubject.CreateOperation(0, z.SubjectId, z.LessonsCount)))).ToList(); + + return subjectsDict.Select(x => + { + var ss = curriculumSubjects.First(y => y.Id == x.Key); + ss.SetSubjectSubject(x.Value); + return ss; + }).ToArray(); } catch (Exception ex) { diff --git a/ProjectShedule/ProjectShedule/Repositories/Implementations/GroupRepository.cs b/ProjectShedule/ProjectShedule/Repositories/Implementations/GroupRepository.cs index d24f9f6..d63e6b2 100644 --- a/ProjectShedule/ProjectShedule/Repositories/Implementations/GroupRepository.cs +++ b/ProjectShedule/ProjectShedule/Repositories/Implementations/GroupRepository.cs @@ -61,7 +61,12 @@ public class GroupRepository : IGroupRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM StudentsGroup"; + var querySelect = @"SELECT + sg.*, + cn.Direction as CurriculumName +FROM StudentsGroup sg +LEFT JOIN Curriculum cn on cn.Id = sg.CurriculumId +"; var groups = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(groups)); diff --git a/ProjectShedule/ProjectShedule/Repositories/Implementations/SheduleRepository.cs b/ProjectShedule/ProjectShedule/Repositories/Implementations/SheduleRepository.cs index 58cc115..420830f 100644 --- a/ProjectShedule/ProjectShedule/Repositories/Implementations/SheduleRepository.cs +++ b/ProjectShedule/ProjectShedule/Repositories/Implementations/SheduleRepository.cs @@ -59,7 +59,18 @@ public class SheduleRepository : ISheduleRepository try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM Shedule"; + var querySelect = @"SELECT + sh.*, + s.GroupNumber as StudentsGroupName, + CONCAT(t.LastName, ' ', t.FirstName) as TeacherName, + su.Name as SubjectName, + c.Name as ClassroomName +FROM Shedule sh +LEFT JOIN StudentsGroup s on s.Id = sh.StudentsGroupId +LEFT JOIN Teacher t on t.Id = sh.TeacherId +LEFT JOIN Subject su on su.Id = sh.SubjectId +LEFT JOIN Classroom c on c.Id = sh.ClassroomId +"; var shedule = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(shedule));