SUBD_SchoolSchedule/SchoolSchedule/SchoolScheduleDataBaseImplement/Models/Lesson.cs
2024-04-08 22:02:19 +04:00

89 lines
2.8 KiB
C#

using SchoolScheduleContracts.BindingModels;
using SchoolScheduleContracts.ViewModels;
using SchoolScheduleDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SchoolScheduleDataBaseImplement.Models
{
public class Lesson : ILessonModel
{
public int Id { get; private set; }
[Required]
public DateOnly Date { get; private set; }
[Required]
public string? Homework { get; private set; } = null;
[Required]
public int SchedulePlaceId { get; private set; }
[Required]
public int TeacherId { get; private set; }
[Required]
public int SubjectId { get; private set; }
[Required]
public int GradeId { get; private set; }
[ForeignKey("LessonId")]
public virtual List<LessonStudent> Students { get; set; } = new();
public virtual SchedulePlace SchedulePlace { get; set; } = new();
public virtual Teacher Teacher { get; set; } = new();
public virtual Subject Subject { get; set; } = new();
public virtual Grade Grade { get; set; } = new();
public static Lesson Create(SchoolScheduleDataBase context, LessonBindingModel model)
{
return new Lesson
{
Id = model.Id,
Date = model.Date,
Homework = model.Homework,
SchedulePlaceId = model.SchedulePlaceId,
SchedulePlace = context.SchedulePlaces.First(y => y.Id == model.SchedulePlaceId),
TeacherId = model.TeacherId,
SubjectId = model.SubjectId,
GradeId = model.GradeId,
Teacher = context.Teachers.First(x => x.Id == model.TeacherId),
Subject = context.Subjects.First(x => x.Id == model.SubjectId),
Grade = context.Grades.First(x => x.Id == model.GradeId)
};
}
public void Update(SchoolScheduleDataBase context, LessonBindingModel model)
{
if (model == null)
{
return;
}
Date = model.Date;
Homework = model.Homework;
SchedulePlaceId = model.SchedulePlaceId;
SchedulePlace = context.SchedulePlaces.First(y => y.Id == model.SchedulePlaceId);
TeacherId = model.TeacherId;
SubjectId = model.SubjectId;
GradeId = model.GradeId;
Teacher = context.Teachers.First(x => x.Id == model.TeacherId);
Subject = context.Subjects.First(x => x.Id == model.SubjectId);
Grade = context.Grades.First(x => x.Id == model.GradeId);
}
public LessonViewModel GetViewModel => new()
{
Id = Id,
Date = Date,
Homework = Homework,
SchedulePlaceId = SchedulePlaceId,
GradeId = GradeId,
TeacherId = TeacherId,
SubjectId = SubjectId,
SchedulePlaceTime = SchedulePlace.Time,
TeacherFullName = Teacher.FullName,
SubjectName = Subject.SubjectName,
GradeName = Grade.Year.ToString() + Grade.Letter.ToString()
};
}
}