done;withLogsConsole

This commit is contained in:
Your Name 2025-06-09 23:05:33 +03:00
parent d7abb5ffd6
commit 174854d4ba
19 changed files with 106 additions and 50 deletions

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia;
@ -5,6 +6,7 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using kursovaya.Models;
using kursovaya.ModelsLocal;
namespace kursovaya;
@ -14,6 +16,7 @@ public partial class AddTeacher : Window
Teacher _teacher = new Teacher();
List<Teacher> _teachers = new List<Teacher>();
List<DisciplineGroupTeacher> _disciplineGroupTeachers = new List<DisciplineGroupTeacher>();
public AddTeacher()
{
InitializeComponent();
@ -54,9 +57,40 @@ public partial class AddTeacher : Window
foreach (var item in selectedItems)
{
var studentsId = ctx.Attestations.Where(it => it.IdDiscipline == item.Discipline.Id).Select(it => it.IdUser).ToList();
foreach (var id in studentsId)
{
var groupId = ctx.Students
.Where(s => s.Id == id)
.Select(s => s.IdGroup)
.FirstOrDefault();
var group = ctx.Groups.FirstOrDefault(g => g.Id == groupId);
bool alreadyExists = _disciplineGroupTeachers.Any(dgt =>
dgt.Group.Id == group.Id &&
dgt.Discipline.Id == item.Discipline.Id &&
dgt.Teacher.Id == _teacher.Id);
if (!alreadyExists)
{
_disciplineGroupTeachers.Add(new DisciplineGroupTeacher()
{
Group = group,
Teacher = _teacher,
Discipline = item.Discipline
});
}
}
var disc_teach = new DisciplineTeacher() { IdDiscipline = item.Discipline.Id, IdTeacher = lastTeacherId+1 };
ctx.DisciplineTeachers.Add(disc_teach);
}
foreach (var item in _disciplineGroupTeachers)
{
Console.WriteLine($"Discipline: {item.Discipline.Name} Teacher: {item.Teacher.Fio} Group: {item.Group.Id}");
}
var changes = ctx.SaveChanges();
@ -77,7 +111,9 @@ public partial class AddTeacher : Window
private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
{
Close(_teachers);
Result res = new Result(){Teachers = _teachers, DisciplineGroupTeachers = _disciplineGroupTeachers};
Close(res);
}
public class DisciplinePresenter()

View File

@ -7,6 +7,7 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using kursovaya.Models;
using kursovaya.ModelsLocal;
namespace kursovaya;
@ -15,7 +16,9 @@ public partial class AdminWindow : Window
List<Discipline> Disciplines = new List<Discipline>();
List<Group> Groups = new List<Group>();
List<Teacher> Teachers = new List<Teacher>();
ObservableCollection<DisciplineGroupTeacher> DisciplineGroupTeachers = new ObservableCollection<DisciplineGroupTeacher>();
public List<DisciplineGroupTeacher> dataSourceDisciplineGroupTeachers = new List<DisciplineGroupTeacher>();
public ObservableCollection<DisciplineGroupTeacher> DisciplineGroupTeachers = new ObservableCollection<DisciplineGroupTeacher>();
public AdminWindow()
{
InitializeComponent();
@ -35,38 +38,25 @@ public partial class AdminWindow : Window
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});
dataSourceDisciplineGroupTeachers.Add(new DisciplineGroupTeacher(){Teacher = teacher, Discipline = discipline, Group = group});
}
}
DisplayAll();
MultComboBox.ItemsSource = DisciplineGroupTeachers.Select(dg => dg.NameComboBox).ToList();
FlatGrid.ItemsSource = DisciplineGroupTeachers;
}
public class DisciplineGroupTeacher()
public void DisplayAll()
{
public Group Group { get; set; }
public Discipline Discipline { get; set; }
public Teacher Teacher { get; set; }
public string DisciplineName
var ctx = new DatabaseContext();
var temp = dataSourceDisciplineGroupTeachers;
DisciplineGroupTeachers.Clear();
foreach (var item in temp)
{
get => Discipline.Name;
}
public int GroupId
{
get => Group.Id;
}
public string TeacherFio
{
get => Teacher.Fio;
}
public string NameComboBox
{
get
{
return $"{Discipline.Name} - {Group.Id} - {Teacher.Fio}";
}
DisciplineGroupTeachers.Add(item);
}
}
@ -104,15 +94,11 @@ public partial class AdminWindow : Window
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<Boolean>(this);
if (result == true)
{
Display();
}
var result = await teachersFromAdminWindow.ShowDialog<List<DisciplineGroupTeacher>>(this);
dataSourceDisciplineGroupTeachers.AddRange(result);
DisplayAll();
}
private void ButtonCheckDiscipline_OnClick(object? sender, RoutedEventArgs e)

View File

@ -0,0 +1,30 @@
using kursovaya.Models;
namespace kursovaya.ModelsLocal;
public class DisciplineGroupTeacher()
{
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 string NameComboBox
{
get { return $"{Discipline.Name} - {Group.Id} - {Teacher.Fio}"; }
}
}

10
ModelsLocal/Result.cs Normal file
View File

@ -0,0 +1,10 @@
using System.Collections.Generic;
using kursovaya.Models;
namespace kursovaya.ModelsLocal;
public class Result()
{
public List<Teacher> Teachers { get; set; }
public List<DisciplineGroupTeacher> DisciplineGroupTeachers { get; set; }
}

View File

@ -6,6 +6,7 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using kursovaya.Models;
using kursovaya.ModelsLocal;
namespace kursovaya;
@ -13,7 +14,7 @@ public partial class TeachersFromAdminWindow : Window
{
public List<Teacher> dataSourceTeachers = new List<Teacher>();
public ObservableCollection<Teacher> Teachers = new ObservableCollection<Teacher>();
List<Teacher> _addedTeachers = new List<Teacher>();
Result result = new Result();
public TeachersFromAdminWindow()
{
InitializeComponent();
@ -27,14 +28,7 @@ public partial class TeachersFromAdminWindow : Window
private void ButtonBack_OnClick(object? sender, RoutedEventArgs e)
{
if (_addedTeachers == null || _addedTeachers.Count == 0)
{
Close(true);
}
else
{
Close(false);
}
Close(result.DisciplineGroupTeachers);
}
public void DisplayTeachers()
@ -52,12 +46,12 @@ public partial class TeachersFromAdminWindow : Window
private async void ButtonAddTeacher_OnClick(object? sender, RoutedEventArgs e)
{
AddTeacher addTeacher = new AddTeacher();
_addedTeachers = await addTeacher.ShowDialog<List<Teacher>>(this);
if (_addedTeachers == null || _addedTeachers.Count == 0)
result = await addTeacher.ShowDialog<Result>(this);
if (result.Teachers == null || result.Teachers.Count == 0)
{
return;
}
dataSourceTeachers.AddRange(_addedTeachers);
dataSourceTeachers.AddRange(result.Teachers);
DisplayTeachers();
}
}

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
f0de6e47f368c7d2b430389bae7c7fda5f65514e38af332e1f0fd91696366f73
4a653792709c12e18c09bc6f0460d9f61d1fd7d180a73a62ac47c42063efe969

Binary file not shown.

View File

@ -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+c5083481c68ef5cc39a2cfcc445063f2773e3a9f")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d7abb5ffd689ebecb45a3eaa84e87dfd90e6d9f7")]
[assembly: System.Reflection.AssemblyProductAttribute("kursovaya")]
[assembly: System.Reflection.AssemblyTitleAttribute("kursovaya")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
63629f52d026f6c617a2e1d2be3f8b814551f6d1d0a2981d0c3782f8ad0ba5ad
56b533d6bc40151d11e8da76022af04036771e41ff8ddd0fbff74168ace28e08

View File

@ -1 +1 @@
71f8c7885cc41c61509dddd287b6e947d22d2d15c24d98b288e9f7c66559ec2e
c5932addac0a6bc3a167df371d96f37e6eca09a500d93ddafd26cb087e00fdef

Binary file not shown.

Binary file not shown.

Binary file not shown.