diff --git a/AddDiscipline.axaml b/AddDiscipline.axaml
new file mode 100644
index 0000000..eae131c
--- /dev/null
+++ b/AddDiscipline.axaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AddDiscipline.axaml.cs b/AddDiscipline.axaml.cs
new file mode 100644
index 0000000..b53174d
--- /dev/null
+++ b/AddDiscipline.axaml.cs
@@ -0,0 +1,90 @@
+using System.Collections.Generic;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class AddDiscipline : Window
+{
+ List _groups = new List();
+ List _formAttests = new List();
+ List _students = new List();
+ Discipline _discipline = new Discipline();
+ Attestation _attestation = new Attestation();
+ CalculateGrade calculateGrade = new CalculateGrade();
+ public AddDiscipline()
+ {
+ InitializeComponent();
+ using var ctx = new DatabaseContext();
+
+ _groups = ctx.Groups.ToList();
+ _formAttests = ctx.FormAttests.ToList();
+ _students = ctx.Students.ToList();
+
+ ListBoxGroups.ItemsSource = _groups.Select(it => it.Id);
+ FormAttestComboBox.ItemsSource = _formAttests.Select(g => g.Name).ToList();
+ }
+
+ private void ButtonAdd_OnClick(object? sender, RoutedEventArgs e)
+ {
+ // if (string.IsNullOrWhiteSpace(ListBoxGroups.SelectedItem.ToString()) || string.IsNullOrWhiteSpace(DisciplineNameTextBox.Text) || string.IsNullOrWhiteSpace(FormAttestComboBox.SelectedItem.ToString()))
+ // {
+ // ErrorMessage.Text = "Поля не должны быть пустыми!";
+ // return;
+ // }
+ if (FormAttestComboBox.SelectedItem == null ||
+ ListBoxGroups.SelectedItems == null ||
+ ListBoxGroups.SelectedItems.Count == 0 ||
+ string.IsNullOrWhiteSpace(DisciplineNameTextBox?.Text))
+ {
+ ErrorMessage.Text = "Поля не должны быть пустыми!";
+ return;
+ }
+
+ var ctx = new DatabaseContext();
+
+ var disciplineName = DisciplineNameTextBox.Text;
+ var selectedGroupIds = ListBoxGroups.SelectedItems.Cast();
+ var selectedFormAttestId = ctx.FormAttests.FirstOrDefault(f => f.Name == FormAttestComboBox.SelectedItem.ToString()).Id;
+
+ int lastDisciplineId = ctx.Disciplines.Max(u => u.Id);
+
+ _discipline = new Discipline(){ Id = lastDisciplineId + 1, Name = disciplineName, IdFormAttest = selectedFormAttestId };
+ ctx.Disciplines.Add(_discipline);
+
+ foreach (var groupId in selectedGroupIds)
+ {
+ _students = ctx.Students.Where(s => s.IdGroup == groupId).ToList();
+ foreach (var student in _students)
+ {
+ _attestation = new Attestation(){ IdUser = student.Id, IdDiscipline = lastDisciplineId+1, AttestFirst = 0, AttestSecond = 0, AttestThird = 0, Total = 0, Grade = calculateGrade.CalculateGradeMethod(0, selectedFormAttestId)};
+ ctx.Attestations.Add(_attestation);
+ }
+ }
+
+ var changes = ctx.SaveChanges();
+
+ if (changes > 0)
+ {
+ SuccessMessage.Text = "дисциплина успешно добавлена!";
+ if (ErrorMessage != null)
+ {
+ ErrorMessage.Text = "";
+ }
+ }
+ else
+ {
+ ErrorMessage.Text = "Не удалось добавить дисциплину.";
+ SuccessMessage.Text = "";
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close();
+ }
+}
\ No newline at end of file
diff --git a/AddGroup.axaml b/AddGroup.axaml
new file mode 100644
index 0000000..0ab6f91
--- /dev/null
+++ b/AddGroup.axaml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AddGroup.axaml.cs b/AddGroup.axaml.cs
new file mode 100644
index 0000000..088bd2f
--- /dev/null
+++ b/AddGroup.axaml.cs
@@ -0,0 +1,67 @@
+using System.Collections.Generic;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class AddGroup : Window
+{
+ List groups = new List();
+ Group group = new Group();
+ public AddGroup()
+ {
+ InitializeComponent();
+ }
+
+ private void ButtonAdd_OnClick(object? sender, RoutedEventArgs e)
+ {
+ var id = IdTextBox.Text;
+ var year = YearTextBox.Text;
+
+ if (string.IsNullOrWhiteSpace(id) || string.IsNullOrWhiteSpace(year))
+ {
+ ErrorMessage.Text = "Поля не должны быть пустыми!";
+ return;
+ }
+
+ int.TryParse(id, out int idInt);
+ int.TryParse(year, out int yearInt);
+
+ var ctx = new DatabaseContext();
+
+ if (ctx.Groups.Any(x => x.Id == idInt))
+ {
+ ErrorMessage.Text = "Такая группа уже существует";
+ return;
+ }
+
+ group = new Group() { Id = idInt, YearAdmission = yearInt };
+
+ ctx.Groups.Add(group);
+ var changes = ctx.SaveChanges();
+
+ if (changes > 0)
+ {
+ SuccessMessage.Text = "Группа успешно добавлена!";
+ if (ErrorMessage != null)
+ {
+ ErrorMessage.Text = "";
+ }
+ groups.Add(group);
+ }
+ else
+ {
+ ErrorMessage.Text = "Не удалось добавить группу.";
+ SuccessMessage.Text = "";
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close(groups);
+ }
+}
\ No newline at end of file
diff --git a/AddStudent.axaml b/AddStudent.axaml
new file mode 100644
index 0000000..3a5f9a0
--- /dev/null
+++ b/AddStudent.axaml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AddStudent.axaml.cs b/AddStudent.axaml.cs
new file mode 100644
index 0000000..f8ff669
--- /dev/null
+++ b/AddStudent.axaml.cs
@@ -0,0 +1,78 @@
+using System.Collections.Generic;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class AddStudent : Window
+{
+ List _groups = new List();
+ Group group = new Group();
+
+ List students = new List();
+ Student student = new Student();
+
+ User user = new User();
+ public AddStudent()
+ {
+ InitializeComponent();
+ using var ctx = new DatabaseContext();
+
+ _groups = ctx.Groups.ToList();
+
+ GroupsComboBox.ItemsSource = _groups.Select(g => g.Id).ToList();
+ }
+
+ private void ButtonAdd_OnClick(object? sender, RoutedEventArgs e)
+ {
+ // if (string.IsNullOrWhiteSpace(GroupsComboBox.SelectedItem.ToString()) || string.IsNullOrWhiteSpace(FioTextBox.Text))
+ // {
+ // ErrorMessage.Text = "Поля не должны быть пустыми!";
+ // return;
+ // }
+ if (GroupsComboBox.SelectedItem == null ||
+ string.IsNullOrWhiteSpace(FioTextBox?.Text))
+ {
+ ErrorMessage.Text = "Поля не должны быть пустыми!";
+ return;
+ }
+
+ var fio = FioTextBox.Text;
+ var selectedGroupId = (int)GroupsComboBox.SelectedItem;
+
+ var ctx = new DatabaseContext();
+
+ int lastUserId = ctx.Users.Max(u => u.Id);
+
+ user = new User() {Id = lastUserId+1, Login = $"user{lastUserId+1}", Password = "qwerty", Email = $"user{lastUserId+1}@mail.ru", RoleId = 1};
+ student = new Student() {Id = lastUserId+1, Fio = fio, IdGroup = selectedGroupId, Login = $"user{lastUserId+1}"};
+
+ ctx.Users.Add(user);
+ ctx.Students.Add(student);
+ var changes = ctx.SaveChanges();
+
+ if (changes > 0)
+ {
+ SuccessMessage.Text = "Ученик успешно добавлен!";
+ if (ErrorMessage != null)
+ {
+ ErrorMessage.Text = "";
+ }
+ students.Add(student);
+ }
+ else
+ {
+ ErrorMessage.Text = "Не удалось добавить ученика.";
+ SuccessMessage.Text = "";
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close(students);
+ }
+}
\ No newline at end of file
diff --git a/AddTeacher.axaml b/AddTeacher.axaml
new file mode 100644
index 0000000..40b6ea4
--- /dev/null
+++ b/AddTeacher.axaml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AddTeacher.axaml.cs b/AddTeacher.axaml.cs
new file mode 100644
index 0000000..66e3dc9
--- /dev/null
+++ b/AddTeacher.axaml.cs
@@ -0,0 +1,92 @@
+using System.Collections.Generic;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class AddTeacher : Window
+{
+ List _disciplinePresenters = new List();
+ Teacher _teacher = new Teacher();
+ List _teachers = new List();
+
+ public AddTeacher()
+ {
+ InitializeComponent();
+ using var ctx = new DatabaseContext();
+
+ var disciplineTeachers = ctx.DisciplineTeachers.ToList();
+ _disciplinePresenters = ctx.Disciplines.Select(it => new DisciplinePresenter()
+ {
+ Discipline = it,
+ }).ToList();
+
+ // ListBoxDisciplineGroup.ItemsSource = _disciplineGroups.Select(it => it.NameComboBox);
+ ListBoxDisciplineGroup.ItemsSource = _disciplinePresenters;
+ }
+
+ private void ButtonAdd_OnClick(object? sender, RoutedEventArgs e)
+ {
+ if (ListBoxDisciplineGroup.SelectedItems == null ||
+ ListBoxDisciplineGroup.SelectedItems.Count == 0 ||
+ string.IsNullOrWhiteSpace(TeacherNameTextBox?.Text))
+ {
+ ErrorMessage.Text = "Поля не должны быть пустыми!";
+ return;
+ }
+
+ var ctx = new DatabaseContext();
+
+ var teacherName = TeacherNameTextBox.Text;
+ var selectedItems = ListBoxDisciplineGroup.SelectedItems.Cast().ToList();
+ int lastUserId = ctx.Users.Max(u => u.Id);
+ int lastTeacherId = ctx.Teachers.Max(u => u.Id);
+
+ var user = new User(){ Id = lastUserId + 1, Login = $"user{lastUserId+1}", Password = "qwerty", Email = $"user{lastUserId+1}@mail.ru", RoleId = 2};
+ ctx.Users.Add(user);
+
+ _teacher = new Teacher(){Id = lastTeacherId+1, Fio = teacherName, Login = $"user{lastUserId+1}"};
+ _teachers.Add(_teacher);
+ ctx.Teachers.Add(_teacher);
+
+ foreach (var item in selectedItems)
+ {
+ var disc_teach = new DisciplineTeacher() { IdDiscipline = item.Discipline.Id, IdTeacher = lastTeacherId+1 };
+ ctx.DisciplineTeachers.Add(disc_teach);
+ }
+
+ var changes = ctx.SaveChanges();
+
+ if (changes > 0)
+ {
+ SuccessMessage.Text = "Учитель успешно добавлен!";
+ if (ErrorMessage != null)
+ {
+ ErrorMessage.Text = "";
+ }
+ }
+ else
+ {
+ ErrorMessage.Text = "Не удалось добавить учителя.";
+ SuccessMessage.Text = "";
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close(_teachers);
+ }
+
+ public class DisciplinePresenter()
+ {
+ public Discipline Discipline { get; set; }
+ public string DisciplineName
+ {
+ get => Discipline.Name;
+ }
+ }
+}
\ No newline at end of file
diff --git a/AdminWindow.axaml b/AdminWindow.axaml
index c25bafc..41acfb1 100644
--- a/AdminWindow.axaml
+++ b/AdminWindow.axaml
@@ -9,13 +9,15 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -24,7 +26,7 @@
-
+
diff --git a/AdminWindow.axaml.cs b/AdminWindow.axaml.cs
index 8b441ec..ff50e9a 100644
--- a/AdminWindow.axaml.cs
+++ b/AdminWindow.axaml.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@@ -29,16 +30,16 @@ public partial class AdminWindow : Window
foreach (DisciplineTeacher disciplineTeacher in disciplineTeachers)
{
- //todo
- //var group =
var teacher = ctx.Teachers.FirstOrDefault(t => t.Id == disciplineTeacher.IdTeacher);
var discipline = ctx.Disciplines.FirstOrDefault(d => d.Id == disciplineTeacher.IdDiscipline);
- DisciplineGroupTeachers.Add(new DisciplineGroupTeacher(){Teacher = teacher, Discipline = discipline, Group = new Group() {Id = 777, YearAdmission = 777}});
+ var groups = ctx.Groups.Where(g => ctx.Attestations.Any(at => ctx.Students.Any(s => s.Id == at.IdUser && s.IdGroup == g.Id) && at.IdDiscipline == discipline.Id));
+ foreach (Group group in groups)
+ {
+ DisciplineGroupTeachers.Add(new DisciplineGroupTeacher(){Teacher = teacher, Discipline = discipline, Group = group});
+ }
}
- GroupComboBox.ItemsSource = Groups.Select(g => g.Id);
- DisciplineComboBox.ItemsSource = Disciplines.Select(d => d.Name);
- TeacherComboBox.ItemsSource = Teachers.Select(t => t.Fio);
+ MultComboBox.ItemsSource = DisciplineGroupTeachers.Select(dg => dg.NameComboBox).ToList();
FlatGrid.ItemsSource = DisciplineGroupTeachers;
}
@@ -48,18 +49,34 @@ public partial class AdminWindow : Window
public Group Group { get; set; }
public Discipline Discipline { get; set; }
public Teacher Teacher { get; set; }
-
public string DisciplineName
{
get => Discipline.Name;
}
+ public int GroupId
+ {
+ get => Group.Id;
+ }
public string TeacherFio
{
get => Teacher.Fio;
}
- public int GroupId
+ public string NameComboBox
{
- get => Group.Id;
+ get
+ {
+ return $"{Discipline.Name} - {Group.Id} - {Teacher.Fio}";
+ }
+ }
+ }
+
+ public void Display()
+ {
+ if (MultComboBox.SelectionBoxItem != null)
+ {
+ var selectedDiscGroupTeacher = DisciplineGroupTeachers.FirstOrDefault(dg => dg.NameComboBox == MultComboBox.SelectedItem.ToString());
+ var filteredData = DisciplineGroupTeachers.Where(dg => dg.Discipline.Name == selectedDiscGroupTeacher.Discipline.Name && dg.Group.Id == selectedDiscGroupTeacher.Group.Id && dg.Teacher.Fio == selectedDiscGroupTeacher.Teacher.Fio).ToList();
+ FlatGrid.ItemsSource = filteredData;
}
}
@@ -67,4 +84,40 @@ public partial class AdminWindow : Window
{
Close();
}
-}
\ No newline at end of file
+
+ private void ButtonCheck_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Display();
+ }
+
+ private void ButtonCheckGroups_OnClick(object? sender, RoutedEventArgs e)
+ {
+ GroupsFromAdminWindow groupsFromAdminWindow = new GroupsFromAdminWindow();
+ groupsFromAdminWindow.ShowDialog(this);
+ }
+
+ private void ButtonCheckStudents_OnClick(object? sender, RoutedEventArgs e)
+ {
+ StudentsFromAdminWindow studentsFromAdminWindow = new StudentsFromAdminWindow();
+ studentsFromAdminWindow.ShowDialog(this);
+ }
+
+ private async void ButtonCheckTeachers_OnClick(object? sender, RoutedEventArgs e)
+ {
+ // TeachersFromAdminWindow teachersFromAdminWindow = new TeachersFromAdminWindow();
+ // teachersFromAdminWindow.ShowDialog(this);
+
+ TeachersFromAdminWindow teachersFromAdminWindow = new TeachersFromAdminWindow();
+ var result = await teachersFromAdminWindow.ShowDialog(this);
+ if (result == true)
+ {
+ Display();
+ }
+ }
+
+ private void ButtonCheckDiscipline_OnClick(object? sender, RoutedEventArgs e)
+ {
+ AddDiscipline addDiscipline = new AddDiscipline();
+ addDiscipline.ShowDialog(this);
+ }
+}
diff --git a/CalculateGrade.cs b/CalculateGrade.cs
new file mode 100644
index 0000000..142b10a
--- /dev/null
+++ b/CalculateGrade.cs
@@ -0,0 +1,29 @@
+namespace kursovaya;
+
+public class CalculateGrade
+{
+ public string CalculateGradeMethod(int total, int formAttest)
+ {
+ string grade = "";
+ switch (formAttest)
+ {
+ case 1:
+ if (total >= 90) grade = "отлично";
+ else if (total >= 80) grade = "хорошо";
+ else if (total >= 70) grade = "удовлетворительно";
+ else grade = "неудовлетворительно";
+ break;
+ case 2:
+ if (total >= 90) grade = "отлично";
+ else if (total >= 80) grade = "хорошо";
+ else if (total >= 70) grade = "удовлетворительно";
+ else grade = "неудовлетворительно";
+ break;
+ case 3:
+ if (total >= 70) grade = "зачтено";
+ else grade = "не зачтено";
+ break;
+ }
+ return grade;
+ }
+}
\ No newline at end of file
diff --git a/GroupsFromAdminWindow.axaml b/GroupsFromAdminWindow.axaml
new file mode 100644
index 0000000..266e422
--- /dev/null
+++ b/GroupsFromAdminWindow.axaml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GroupsFromAdminWindow.axaml.cs b/GroupsFromAdminWindow.axaml.cs
new file mode 100644
index 0000000..110791b
--- /dev/null
+++ b/GroupsFromAdminWindow.axaml.cs
@@ -0,0 +1,56 @@
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+using Microsoft.EntityFrameworkCore.Scaffolding.Metadata;
+
+namespace kursovaya;
+
+public partial class GroupsFromAdminWindow : Window
+{
+ public List dataSourceGroups = new List();
+ public ObservableCollection Groups = new ObservableCollection();
+ public GroupsFromAdminWindow()
+ {
+ InitializeComponent();
+
+ var ctx = new DatabaseContext();
+
+ dataSourceGroups = ctx.Groups.ToList();
+ DisplayGroups();
+ FlatGrid.ItemsSource = Groups;
+ }
+
+ public void DisplayGroups()
+ {
+ var ctx = new DatabaseContext();
+ var temp = dataSourceGroups;
+ Groups.Clear();
+
+ foreach (var group in temp)
+ {
+ Groups.Add(group);
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close();
+ }
+
+ private async void ButtonAddGroup_OnClick(object? sender, RoutedEventArgs e)
+ {
+ AddGroup addGroup = new AddGroup();
+ var groups = await addGroup.ShowDialog>(this);
+ if (groups == null || groups.Count == 0)
+ {
+ return;
+ }
+ dataSourceGroups.AddRange(groups);
+ DisplayGroups();
+ }
+}
\ No newline at end of file
diff --git a/StudentWindow.axaml b/StudentWindow.axaml
index 72b1440..eb981c4 100644
--- a/StudentWindow.axaml
+++ b/StudentWindow.axaml
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/StudentsFromAdminWindow.axaml b/StudentsFromAdminWindow.axaml
new file mode 100644
index 0000000..7b1c4c5
--- /dev/null
+++ b/StudentsFromAdminWindow.axaml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/StudentsFromAdminWindow.axaml.cs b/StudentsFromAdminWindow.axaml.cs
new file mode 100644
index 0000000..64c4dae
--- /dev/null
+++ b/StudentsFromAdminWindow.axaml.cs
@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class StudentsFromAdminWindow : Window
+{
+ public List dataSourceStudents = new List();
+ public ObservableCollection Students = new ObservableCollection();
+ public StudentsFromAdminWindow()
+ {
+ InitializeComponent();
+
+ // var ctx = new DatabaseContext();
+ //
+ // Students = ctx.Students.ToList();
+ // FlatGrid.ItemsSource = Students;
+
+
+ var ctx = new DatabaseContext();
+
+ dataSourceStudents = ctx.Students.ToList();
+ DisplayStudents();
+ FlatGrid.ItemsSource = Students;
+ }
+
+
+ public void DisplayStudents()
+ {
+ var ctx = new DatabaseContext();
+ var temp = dataSourceStudents;
+ Students.Clear();
+
+ foreach (var student in temp)
+ {
+ Students.Add(student);
+ }
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ Close();
+ }
+
+ private async void ButtonAddStudent_OnClick(object? sender, RoutedEventArgs e)
+ {
+ AddStudent addStudent = new AddStudent();
+ var students = await addStudent.ShowDialog>(this);
+
+ if (students == null || students.Count == 0)
+ return;
+
+ dataSourceStudents.AddRange(students);
+ DisplayStudents();
+ }
+}
\ No newline at end of file
diff --git a/TeacherWindow.axaml b/TeacherWindow.axaml
index 1e86e1a..0f21cd0 100644
--- a/TeacherWindow.axaml
+++ b/TeacherWindow.axaml
@@ -9,9 +9,8 @@
-
-
-
+
+
diff --git a/TeacherWindow.axaml.cs b/TeacherWindow.axaml.cs
index 189393c..2fbd932 100644
--- a/TeacherWindow.axaml.cs
+++ b/TeacherWindow.axaml.cs
@@ -16,6 +16,7 @@ public partial class TeacherWindow : Window
List discGroups = new();
public ObservableCollection AttestationsTeachers = new ObservableCollection();
List dataSourceAttestationsTeachers;
+ CalculateGrade calculateGrade = new CalculateGrade();
public TeacherWindow()
{
InitializeComponent();
@@ -55,8 +56,7 @@ public partial class TeacherWindow : Window
Console.WriteLine($"{discGroup.discipline.Name} - {discGroup.group.Id} - {discGroup.attestations.Count}");
}
- GroupComboBox.ItemsSource = discGroups.Select(dg => dg.group.Id).Distinct().ToList();
- DisciplineComboBox.ItemsSource = discGroups.Select(dg => dg.discipline.Name).Distinct().ToList();
+ MultComboBox.ItemsSource = discGroups.Select(dg => dg.NameComboBox).ToList();
FlatAttestationGrid.ItemsSource = AttestationsTeachers;
}
@@ -69,6 +69,14 @@ public partial class TeacherWindow : Window
{
public Discipline discipline;
public Group group;
+
+ public string NameComboBox
+ {
+ get
+ {
+ return $"{discipline.Name} - {group.Id}";
+ }
+ }
public List attestations = new();
}
@@ -78,17 +86,13 @@ public partial class TeacherWindow : Window
var temp = dataSourceAttestationsTeachers;
AttestationsTeachers.Clear();
- if (GroupComboBox.SelectionBoxItem != null)
+ if (MultComboBox.SelectionBoxItem != null)
{
- var selectedGroupId = Convert.ToInt32(GroupComboBox.SelectedItem);
- temp = temp.Where(ap => ctx.Students.Any(s => s.Id == ap.IdUser && s.IdGroup == selectedGroupId)).ToList();
- }
-
- if (DisciplineComboBox.SelectionBoxItem != null)
- {
- var idDiscipline = ctx.Disciplines.Where(d => d.Name == DisciplineComboBox.SelectionBoxItem)
- .Select(d => d.Id).FirstOrDefault();
- temp = temp.Where(ap => ap.IdDiscipline == idDiscipline).ToList();
+ var selectedDiscGroupId = discGroups.FirstOrDefault(d => d.NameComboBox == MultComboBox.SelectedItem.ToString()).group.Id;
+ temp = temp.Where(ap => ctx.Students.Any(s => s.Id == ap.IdUser && s.IdGroup == selectedDiscGroupId)).ToList();
+
+ var selectedDiscGroupId2 = discGroups.FirstOrDefault(d => d.NameComboBox == MultComboBox.SelectedItem.ToString()).discipline.Id;
+ temp = temp.Where(ap => ap.IdDiscipline == selectedDiscGroupId2).ToList();
}
Console.WriteLine("Добавлено элементов: " + temp.Count);
@@ -109,30 +113,30 @@ public partial class TeacherWindow : Window
DisplayAttestations();
}
- private string CalculateGrade(int total, int formAttest)
- {
- string grade = "";
- switch (formAttest)
- {
- case 1:
- if (total >= 90) grade = "отлично";
- else if (total >= 80) grade = "хорошо";
- else if (total >= 70) grade = "удовлетворительно";
- else grade = "неудовлетворительно";
- break;
- case 2:
- if (total >= 90) grade = "отлично";
- else if (total >= 80) grade = "хорошо";
- else if (total >= 70) grade = "удовлетворительно";
- else grade = "неудовлетворительно";
- break;
- case 3:
- if (total >= 70) grade = "зачтено";
- else grade = "не зачтено";
- break;
- }
- return grade;
- }
+ // public string CalculateGrade(int total, int formAttest)
+ // {
+ // string grade = "";
+ // switch (formAttest)
+ // {
+ // case 1:
+ // if (total >= 90) grade = "отлично";
+ // else if (total >= 80) grade = "хорошо";
+ // else if (total >= 70) grade = "удовлетворительно";
+ // else grade = "неудовлетворительно";
+ // break;
+ // case 2:
+ // if (total >= 90) grade = "отлично";
+ // else if (total >= 80) grade = "хорошо";
+ // else if (total >= 70) grade = "удовлетворительно";
+ // else grade = "неудовлетворительно";
+ // break;
+ // case 3:
+ // if (total >= 70) grade = "зачтено";
+ // else grade = "не зачтено";
+ // break;
+ // }
+ // return grade;
+ // }
private async void FirstAttest_OnClick(object? sender, RoutedEventArgs e)
{
@@ -151,7 +155,8 @@ public partial class TeacherWindow : Window
AttestSecond = attestation.AttestSecond,
AttestThird = attestation.AttestThird,
Total = newFirstAttest + attestation.AttestSecond + attestation.AttestThird,
- Grade = CalculateGrade(newFirstAttest + attestation.AttestSecond + attestation.AttestThird, formAttest),
+ // Grade = CalculateGrade(newFirstAttest + attestation.AttestSecond + attestation.AttestThird, formAttest),
+ Grade = calculateGrade.CalculateGradeMethod(newFirstAttest + attestation.AttestSecond + attestation.AttestThird, formAttest),
};
ctx.Attestations.Update(newAttestation);
@@ -190,7 +195,9 @@ public partial class TeacherWindow : Window
AttestSecond = newSecondAttest,
AttestThird = attestation.AttestThird,
Total = attestation.AttestFirst + newSecondAttest + attestation.AttestThird,
- Grade = CalculateGrade(attestation.AttestFirst + newSecondAttest + attestation.AttestThird, formAttest),
+ // Grade = CalculateGrade(attestation.AttestFirst + newSecondAttest + attestation.AttestThird, formAttest),
+ Grade = calculateGrade.CalculateGradeMethod(attestation.AttestFirst + newSecondAttest + attestation.AttestThird, formAttest),
+
};
ctx.Attestations.Update(newAttestation);
@@ -229,7 +236,8 @@ public partial class TeacherWindow : Window
AttestSecond = attestation.AttestSecond,
AttestThird = newThirdAttest,
Total = attestation.AttestFirst + attestation.AttestSecond + newThirdAttest,
- Grade = CalculateGrade(attestation.AttestFirst + attestation.AttestSecond + newThirdAttest, formAttest),
+ // Grade = CalculateGrade(attestation.AttestFirst + attestation.AttestSecond + newThirdAttest, formAttest),
+ Grade = calculateGrade.CalculateGradeMethod(attestation.AttestFirst + attestation.AttestSecond + newThirdAttest, formAttest),
};
ctx.Attestations.Update(newAttestation);
@@ -250,4 +258,259 @@ public partial class TeacherWindow : Window
DisplayAttestations();
}
}
-}
\ No newline at end of file
+}
+
+
+// using System;
+// using System.Collections.Generic;
+// using System.Collections.ObjectModel;
+// using System.Linq;
+// using Avalonia;
+// using Avalonia.Controls;
+// using Avalonia.Interactivity;
+// using Avalonia.Markup.Xaml;
+// using kursovaya.Models;
+// using Microsoft.EntityFrameworkCore;
+//
+// namespace kursovaya;
+//
+// public partial class TeacherWindow : Window
+// {
+// List discGroups = new();
+// public ObservableCollection AttestationsTeachers = new ObservableCollection();
+// List dataSourceAttestationsTeachers;
+// public TeacherWindow()
+// {
+// InitializeComponent();
+// }
+//
+// public TeacherWindow(User user) : this()
+// {
+// var ctx = new DatabaseContext();
+//
+// var groups = ctx.Groups.ToList();
+// var teacherId = ctx.Teachers.FirstOrDefault(t => t.Login == user.Login).Id;
+// var disciplinesIds = ctx.Disciplines.Include(d => d.DisciplineTeachers).Where(d => d.DisciplineTeachers.Any(dt => dt.IdTeacher == teacherId)).Select(d => d.Id).ToList();
+// var disciplines = ctx.Disciplines.Include(d => d.DisciplineTeachers).Where(d => d.DisciplineTeachers.Any(dt => dt.IdTeacher == teacherId)).ToList();
+// dataSourceAttestationsTeachers = ctx.Attestations.Where(a => disciplinesIds.Contains(a.IdDiscipline)).Select(a => new AttestationPresenterTeacher()
+// {
+// IdUser = a.IdUser,
+// IdDiscipline = a.IdDiscipline,
+// AttestFirst = a.AttestFirst,
+// AttestSecond = a.AttestSecond,
+// AttestThird = a.AttestThird,
+// Total = a.Total,
+// Grade = a.Grade,
+// StudentFIO = ctx.Students.Where(s => s.Id == a.IdUser).Select(s => s.Fio).FirstOrDefault(),
+// }).ToList();
+// foreach (var group in groups)
+// {
+// foreach (var discipline in disciplines)
+// {
+// var attestationsToDiscGroup = dataSourceAttestationsTeachers.Where(a => ctx.Students.Any(s => s.Id == a.IdUser && s.IdGroup == group.Id) && a.IdDiscipline == discipline.Id).ToList();
+// discGroups.Add(new DiscGroup(){discipline = discipline, group = group, attestations = attestationsToDiscGroup});
+// }
+// }
+// discGroups.RemoveAll(d => d.attestations.Count == 0);
+//
+// foreach (var discGroup in discGroups)
+// {
+// Console.WriteLine($"{discGroup.discipline.Name} - {discGroup.group.Id} - {discGroup.attestations.Count}");
+// }
+//
+// GroupComboBox.ItemsSource = discGroups.Select(dg => dg.group.Id).Distinct().ToList();
+// DisciplineComboBox.ItemsSource = discGroups.Select(dg => dg.discipline.Name).Distinct().ToList();
+// FlatAttestationGrid.ItemsSource = AttestationsTeachers;
+// }
+//
+// public class AttestationPresenterTeacher() : Attestation
+// {
+// public string StudentFIO { get; set; }
+// }
+//
+// public class DiscGroup
+// {
+// public Discipline discipline;
+// public Group group;
+// public List attestations = new();
+// }
+//
+// public void DisplayAttestations()
+// {
+// var ctx = new DatabaseContext();
+// var temp = dataSourceAttestationsTeachers;
+// AttestationsTeachers.Clear();
+//
+// if (GroupComboBox.SelectionBoxItem != null)
+// {
+// var selectedGroupId = Convert.ToInt32(GroupComboBox.SelectedItem);
+// temp = temp.Where(ap => ctx.Students.Any(s => s.Id == ap.IdUser && s.IdGroup == selectedGroupId)).ToList();
+// }
+//
+// if (DisciplineComboBox.SelectionBoxItem != null)
+// {
+// var idDiscipline = ctx.Disciplines.Where(d => d.Name == DisciplineComboBox.SelectionBoxItem)
+// .Select(d => d.Id).FirstOrDefault();
+// temp = temp.Where(ap => ap.IdDiscipline == idDiscipline).ToList();
+// }
+//
+// Console.WriteLine("Добавлено элементов: " + temp.Count);
+//
+// foreach (var item in temp)
+// {
+// AttestationsTeachers.Add(item);
+// }
+// }
+//
+// private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+// {
+// Close();
+// }
+//
+// private void CheckAttest_OnClick(object? sender, RoutedEventArgs e)
+// {
+// DisplayAttestations();
+// }
+//
+// private string CalculateGrade(int total, int formAttest)
+// {
+// string grade = "";
+// switch (formAttest)
+// {
+// case 1:
+// if (total >= 90) grade = "отлично";
+// else if (total >= 80) grade = "хорошо";
+// else if (total >= 70) grade = "удовлетворительно";
+// else grade = "неудовлетворительно";
+// break;
+// case 2:
+// if (total >= 90) grade = "отлично";
+// else if (total >= 80) grade = "хорошо";
+// else if (total >= 70) grade = "удовлетворительно";
+// else grade = "неудовлетворительно";
+// break;
+// case 3:
+// if (total >= 70) grade = "зачтено";
+// else grade = "не зачтено";
+// break;
+// }
+// return grade;
+// }
+//
+// private async void FirstAttest_OnClick(object? sender, RoutedEventArgs e)
+// {
+// if (sender is Button button && button.Tag is AttestationPresenterTeacher attestation)
+// {
+// EditAttestWindow editAttestWindow = new EditAttestWindow(1);
+// var newFirstAttest = await editAttestWindow.ShowDialog(this);
+// var ctx = new DatabaseContext();
+// var formAttest = ctx.Disciplines.FirstOrDefault(d => d.Id == attestation.IdDiscipline).IdFormAttest;
+//
+// Attestation newAttestation = new Attestation()
+// {
+// IdUser = attestation.IdUser,
+// IdDiscipline = attestation.IdDiscipline,
+// AttestFirst = newFirstAttest,
+// AttestSecond = attestation.AttestSecond,
+// AttestThird = attestation.AttestThird,
+// Total = newFirstAttest + attestation.AttestSecond + attestation.AttestThird,
+// Grade = CalculateGrade(newFirstAttest + attestation.AttestSecond + attestation.AttestThird, formAttest),
+// };
+//
+// ctx.Attestations.Update(newAttestation);
+// await ctx.SaveChangesAsync();
+//
+// dataSourceAttestationsTeachers.Remove(attestation);
+// dataSourceAttestationsTeachers.Add(new AttestationPresenterTeacher()
+// {
+// IdUser = newAttestation.IdUser,
+// IdDiscipline = newAttestation.IdDiscipline,
+// AttestFirst = newAttestation.AttestFirst,
+// AttestSecond = newAttestation.AttestSecond,
+// AttestThird = newAttestation.AttestThird,
+// Total = newAttestation.Total,
+// Grade = newAttestation.Grade,
+// StudentFIO = ctx.Students.Where(s => s.Id == newAttestation.IdUser).Select(s => s.Fio).FirstOrDefault()
+// });
+// DisplayAttestations();
+// }
+// }
+//
+// private async void SecondAttest_OnClick(object? sender, RoutedEventArgs e)
+// {
+// if (sender is Button button && button.Tag is AttestationPresenterTeacher attestation)
+// {
+// EditAttestWindow editAttestWindow = new EditAttestWindow(2);
+// var newSecondAttest = await editAttestWindow.ShowDialog(this);
+// var ctx = new DatabaseContext();
+// var formAttest = ctx.Disciplines.FirstOrDefault(d => d.Id == attestation.IdDiscipline).IdFormAttest;
+//
+// Attestation newAttestation = new Attestation()
+// {
+// IdUser = attestation.IdUser,
+// IdDiscipline = attestation.IdDiscipline,
+// AttestFirst = attestation.AttestFirst,
+// AttestSecond = newSecondAttest,
+// AttestThird = attestation.AttestThird,
+// Total = attestation.AttestFirst + newSecondAttest + attestation.AttestThird,
+// Grade = CalculateGrade(attestation.AttestFirst + newSecondAttest + attestation.AttestThird, formAttest),
+// };
+//
+// ctx.Attestations.Update(newAttestation);
+// await ctx.SaveChangesAsync();
+//
+// dataSourceAttestationsTeachers.Remove(attestation);
+// dataSourceAttestationsTeachers.Add(new AttestationPresenterTeacher()
+// {
+// IdUser = newAttestation.IdUser,
+// IdDiscipline = newAttestation.IdDiscipline,
+// AttestFirst = newAttestation.AttestFirst,
+// AttestSecond = newAttestation.AttestSecond,
+// AttestThird = newAttestation.AttestThird,
+// Total = newAttestation.Total,
+// Grade = newAttestation.Grade,
+// StudentFIO = ctx.Students.Where(s => s.Id == newAttestation.IdUser).Select(s => s.Fio).FirstOrDefault()
+// });
+// DisplayAttestations();
+// }
+// }
+//
+// private async void ThirdAttest_OnClick(object? sender, RoutedEventArgs e)
+// {
+// if (sender is Button button && button.Tag is AttestationPresenterTeacher attestation)
+// {
+// EditAttestWindow editAttestWindow = new EditAttestWindow(3);
+// var newThirdAttest = await editAttestWindow.ShowDialog(this);
+// var ctx = new DatabaseContext();
+// var formAttest = ctx.Disciplines.FirstOrDefault(d => d.Id == attestation.IdDiscipline).IdFormAttest;
+//
+// Attestation newAttestation = new Attestation()
+// {
+// IdUser = attestation.IdUser,
+// IdDiscipline = attestation.IdDiscipline,
+// AttestFirst = attestation.AttestFirst,
+// AttestSecond = attestation.AttestSecond,
+// AttestThird = newThirdAttest,
+// Total = attestation.AttestFirst + attestation.AttestSecond + newThirdAttest,
+// Grade = CalculateGrade(attestation.AttestFirst + attestation.AttestSecond + newThirdAttest, formAttest),
+// };
+//
+// ctx.Attestations.Update(newAttestation);
+// await ctx.SaveChangesAsync();
+//
+// dataSourceAttestationsTeachers.Remove(attestation);
+// dataSourceAttestationsTeachers.Add(new AttestationPresenterTeacher()
+// {
+// IdUser = newAttestation.IdUser,
+// IdDiscipline = newAttestation.IdDiscipline,
+// AttestFirst = newAttestation.AttestFirst,
+// AttestSecond = newAttestation.AttestSecond,
+// AttestThird = newAttestation.AttestThird,
+// Total = newAttestation.Total,
+// Grade = newAttestation.Grade,
+// StudentFIO = ctx.Students.Where(s => s.Id == newAttestation.IdUser).Select(s => s.Fio).FirstOrDefault()
+// });
+// DisplayAttestations();
+// }
+// }
+// }
\ No newline at end of file
diff --git a/TeachersFromAdminWindow.axaml b/TeachersFromAdminWindow.axaml
new file mode 100644
index 0000000..2109329
--- /dev/null
+++ b/TeachersFromAdminWindow.axaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TeachersFromAdminWindow.axaml.cs b/TeachersFromAdminWindow.axaml.cs
new file mode 100644
index 0000000..6f525d9
--- /dev/null
+++ b/TeachersFromAdminWindow.axaml.cs
@@ -0,0 +1,63 @@
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Markup.Xaml;
+using kursovaya.Models;
+
+namespace kursovaya;
+
+public partial class TeachersFromAdminWindow : Window
+{
+ public List dataSourceTeachers = new List();
+ public ObservableCollection Teachers = new ObservableCollection();
+ List _addedTeachers = new List();
+ public TeachersFromAdminWindow()
+ {
+ InitializeComponent();
+
+ var ctx = new DatabaseContext();
+
+ dataSourceTeachers = ctx.Teachers.ToList();
+ DisplayTeachers();
+ FlatGrid.ItemsSource = Teachers;
+ }
+
+ private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
+ {
+ if (_addedTeachers == null || _addedTeachers.Count == 0)
+ {
+ Close(true);
+ }
+ else
+ {
+ Close(false);
+ }
+ }
+
+ public void DisplayTeachers()
+ {
+ var ctx = new DatabaseContext();
+ var temp = dataSourceTeachers;
+ Teachers.Clear();
+
+ foreach (var teacher in temp)
+ {
+ Teachers.Add(teacher);
+ }
+ }
+
+ private async void ButtonAddTeacher_OnClick(object? sender, RoutedEventArgs e)
+ {
+ AddTeacher addTeacher = new AddTeacher();
+ _addedTeachers = await addTeacher.ShowDialog>(this);
+ if (_addedTeachers == null || _addedTeachers.Count == 0)
+ {
+ return;
+ }
+ dataSourceTeachers.AddRange(_addedTeachers);
+ DisplayTeachers();
+ }
+}
\ No newline at end of file
diff --git a/bin/Debug/net8.0/kursovaya.dll b/bin/Debug/net8.0/kursovaya.dll
index b94ee6a..4a303c8 100644
Binary files a/bin/Debug/net8.0/kursovaya.dll and b/bin/Debug/net8.0/kursovaya.dll differ
diff --git a/bin/Debug/net8.0/kursovaya.pdb b/bin/Debug/net8.0/kursovaya.pdb
index baeadc0..2f63d57 100644
Binary files a/bin/Debug/net8.0/kursovaya.pdb and b/bin/Debug/net8.0/kursovaya.pdb differ
diff --git a/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache b/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache
index a0a7a8b..a230185 100644
--- a/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache
+++ b/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache
@@ -1 +1 @@
-374a528495048d68bd0a3059a650683b9f05c3cfe090876e3034f1fa8ae41390
+f0de6e47f368c7d2b430389bae7c7fda5f65514e38af332e1f0fd91696366f73
diff --git a/obj/Debug/net8.0/Avalonia/kursovaya.dll b/obj/Debug/net8.0/Avalonia/kursovaya.dll
index b94ee6a..4a303c8 100644
Binary files a/obj/Debug/net8.0/Avalonia/kursovaya.dll and b/obj/Debug/net8.0/Avalonia/kursovaya.dll differ
diff --git a/obj/Debug/net8.0/Avalonia/kursovaya.pdb b/obj/Debug/net8.0/Avalonia/kursovaya.pdb
index baeadc0..2f63d57 100644
Binary files a/obj/Debug/net8.0/Avalonia/kursovaya.pdb and b/obj/Debug/net8.0/Avalonia/kursovaya.pdb differ
diff --git a/obj/Debug/net8.0/Avalonia/resources b/obj/Debug/net8.0/Avalonia/resources
index ebce521..505bf81 100644
Binary files a/obj/Debug/net8.0/Avalonia/resources and b/obj/Debug/net8.0/Avalonia/resources differ
diff --git a/obj/Debug/net8.0/kursovaya.AssemblyInfo.cs b/obj/Debug/net8.0/kursovaya.AssemblyInfo.cs
index 3a7aace..f6f4d48 100644
--- a/obj/Debug/net8.0/kursovaya.AssemblyInfo.cs
+++ b/obj/Debug/net8.0/kursovaya.AssemblyInfo.cs
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("kursovaya")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+248d3e25d22041172a479699a6cb9d4df419c579")]
[assembly: System.Reflection.AssemblyProductAttribute("kursovaya")]
[assembly: System.Reflection.AssemblyTitleAttribute("kursovaya")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/obj/Debug/net8.0/kursovaya.AssemblyInfoInputs.cache b/obj/Debug/net8.0/kursovaya.AssemblyInfoInputs.cache
index 62b550c..764cfed 100644
--- a/obj/Debug/net8.0/kursovaya.AssemblyInfoInputs.cache
+++ b/obj/Debug/net8.0/kursovaya.AssemblyInfoInputs.cache
@@ -1 +1 @@
-438ac02de57945e0a3ab2fd8d2a9cc154f00624a69c91b117844200878d4cd98
+0fff8ebb88ae28dae7ded2aed1d582540b141e9a69d66b9f7cbf35239228691d
diff --git a/obj/Debug/net8.0/kursovaya.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net8.0/kursovaya.GeneratedMSBuildEditorConfig.editorconfig
index 0fb7349..3ed066f 100644
--- a/obj/Debug/net8.0/kursovaya.GeneratedMSBuildEditorConfig.editorconfig
+++ b/obj/Debug/net8.0/kursovaya.GeneratedMSBuildEditorConfig.editorconfig
@@ -19,6 +19,18 @@ build_property.ProjectDir = /Users/rinchi/RiderProjects/kursovaya/kursovaya/
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/AddDiscipline.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/AddGroup.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/AddStudent.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/AddTeacher.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
[/Users/rinchi/RiderProjects/kursovaya/kursovaya/AdminWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
@@ -28,11 +40,20 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[/Users/rinchi/RiderProjects/kursovaya/kursovaya/EditAttestWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/GroupsFromAdminWindow.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
[/Users/rinchi/RiderProjects/kursovaya/kursovaya/MainWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/StudentsFromAdminWindow.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
[/Users/rinchi/RiderProjects/kursovaya/kursovaya/StudentWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+[/Users/rinchi/RiderProjects/kursovaya/kursovaya/TeachersFromAdminWindow.axaml]
+build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
+
[/Users/rinchi/RiderProjects/kursovaya/kursovaya/TeacherWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
diff --git a/obj/Debug/net8.0/kursovaya.csproj.CoreCompileInputs.cache b/obj/Debug/net8.0/kursovaya.csproj.CoreCompileInputs.cache
index 57a541c..c702731 100644
--- a/obj/Debug/net8.0/kursovaya.csproj.CoreCompileInputs.cache
+++ b/obj/Debug/net8.0/kursovaya.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-1c440020a6ab5de412bab6c06555c1126cb8caecb23b96c027088f5248e2106f
+71f8c7885cc41c61509dddd287b6e947d22d2d15c24d98b288e9f7c66559ec2e
diff --git a/obj/Debug/net8.0/kursovaya.dll b/obj/Debug/net8.0/kursovaya.dll
index 19ab92a..6049df6 100644
Binary files a/obj/Debug/net8.0/kursovaya.dll and b/obj/Debug/net8.0/kursovaya.dll differ
diff --git a/obj/Debug/net8.0/kursovaya.pdb b/obj/Debug/net8.0/kursovaya.pdb
index b029a2f..c5d4c14 100644
Binary files a/obj/Debug/net8.0/kursovaya.pdb and b/obj/Debug/net8.0/kursovaya.pdb differ
diff --git a/obj/Debug/net8.0/ref/kursovaya.dll b/obj/Debug/net8.0/ref/kursovaya.dll
index 79075ed..28fd3dc 100644
Binary files a/obj/Debug/net8.0/ref/kursovaya.dll and b/obj/Debug/net8.0/ref/kursovaya.dll differ
diff --git a/obj/Debug/net8.0/refint/Avalonia/kursovaya.dll b/obj/Debug/net8.0/refint/Avalonia/kursovaya.dll
index 79075ed..28fd3dc 100644
Binary files a/obj/Debug/net8.0/refint/Avalonia/kursovaya.dll and b/obj/Debug/net8.0/refint/Avalonia/kursovaya.dll differ
diff --git a/obj/Debug/net8.0/refint/kursovaya.dll b/obj/Debug/net8.0/refint/kursovaya.dll
index 25787ac..4ef8ca1 100644
Binary files a/obj/Debug/net8.0/refint/kursovaya.dll and b/obj/Debug/net8.0/refint/kursovaya.dll differ