CourseWork/University/UniversityDatabaseImplement/Models/Attestation.cs

67 lines
2.3 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UniversityContracts.BindingModels;
using UniversityContracts.ViewModels;
using UniversityDataModels.Enums;
using UniversityDataModels.Models;
namespace UniversityDatabaseImplement.Models
{
public class Attestation : IAttestationModel
2024-04-24 14:08:27 +04:00
{
public int Id { get; private set; }
[Required]
public int UserId { get; private set; }
[Required]
public int StudentId { get; private set; }
2024-05-28 00:44:23 +04:00
public string StudentName { get; private set; } = string.Empty;
[Required]
public string FormOfEvaluation { get; private set; } = string.Empty;
[Required]
public AttestationScore Score { get; private set; } = AttestationScore.Неявка;
public virtual Student Student { get; set; } = new();
public virtual User User { get; set; } = new();
public static Attestation? Create(UniversityDatabase context, AttestationBindingModel model)
2024-04-24 14:08:27 +04:00
{
if (model == null)
{
return null;
}
return new Attestation()
{
Id = model.Id,
UserId = model.UserId,
User = context.Users.First(x => x.Id == model.UserId),
StudentId = model.StudentId,
Student = context.Students.First(x => x.Id == model.StudentId),
2024-05-28 00:44:23 +04:00
StudentName = model.StudentName,
FormOfEvaluation = model.FormOfEvaluation,
Score = model.Score
};
}
public void Update(AttestationBindingModel model)
2024-04-24 14:08:27 +04:00
{
if (model == null)
{
return;
}
StudentId = model.StudentId;
2024-05-28 00:44:23 +04:00
StudentName = model.StudentName;
FormOfEvaluation = model.FormOfEvaluation;
Score = model.Score;
2024-04-24 14:08:27 +04:00
}
public AttestationViewModel GetViewModel => new()
{
Id = Id,
StudentId = StudentId,
2024-05-28 00:44:23 +04:00
StudentName = StudentName,
FormOfEvaluation = FormOfEvaluation,
Score = Score
};
2024-04-24 14:08:27 +04:00
}
}