Files
piaps-course-work-university/contingent_report_desktop/Controller/BusinessLogic/StudentLogic.cs

74 lines
3.3 KiB
C#

using Controller.Repository;
using Controller.ViewModels;
using DataModels.Enums;
using DataModels.Models;
namespace Controller.BusinessLogic
{
public class StudentLogic
{
private readonly StudentRepository _studentRepository;
private readonly GroupRepository _groupRepository;
private readonly SpecializationRepository _specializationRepository;
public StudentLogic(StudentRepository studentRepository, GroupRepository groupRepository, SpecializationRepository specializationRepository)
{
_studentRepository = studentRepository;
_groupRepository = groupRepository;
_specializationRepository = specializationRepository;
}
public async Task<List<StudentViewModel>> GetViewModel()
{
var students = await _studentRepository.GetAll();
//var students = new List<Student>
//{
// new Student { Id = 1, Name = "Иванов", GroupId = 1, SpecializationId = null, Status = Status.AcademicLeave },
// new Student { Id = 2, Name = "Петров", GroupId = null, SpecializationId = null, Status = Status.Studying },
// new Student { Id = 3, Name = "Сидорова", GroupId = 2, SpecializationId = null }
//};
var result = new List<StudentViewModel>();
//var groups = new List<Group>
// {
// new Group { Id = 1, Name = "Группа 101", Course = 1, SpecializationId = 1, MaxStudentCount = 25, Number = 101 },
// new Group { Id = 2, Name = "Группа 202", Course = 2, SpecializationId = 2, MaxStudentCount = 30, Number = 202 },
// new Group { Id = 3, Name = "Группа 303", Course = 3, SpecializationId = 3, MaxStudentCount = 20, Number = 303 }
// };
// Моковые данные специализаций
//var specializations = new List<Specialization>
// {
// new Specialization { Id = 1, Name = "Информатика", Code = "INF" },
// new Specialization { Id = 2, Name = "Математика", Code = "MATH" },
// new Specialization { Id = 3, Name = "Физика", Code = "PHYS" }
// };
foreach (var student in students)
{
var group = student.GroupId.HasValue
? await _groupRepository.Get(student.GroupId.Value) : null;
var specialization = student.SpecializationId.HasValue
? await _specializationRepository.Get(student.SpecializationId.Value) : null;
//var group = student.GroupId.HasValue
// ? groups.FirstOrDefault(g => g.Id == student.GroupId.Value)
// : null;
//var specialization = student.SpecializationId.HasValue
// ? specializations.FirstOrDefault(s => s.Id == student.SpecializationId.Value)
// : group?.SpecializationId != null
// ? specializations.FirstOrDefault(s => s.Id == group.SpecializationId)
// : null;
result.Add(new StudentViewModel(student, group, specialization));
}
return result;
}
}
}