Иван Алексеев de8ff2cfaf копец
2024-11-13 15:21:19 +04:00

67 lines
2.0 KiB
C#

using StudentPerformanceContracts.BindingModels;
using StudentPerformanceContracts.ViewModels;
using StudentPerformanceDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StudentPerformanceDatabaseImplement.Models
{
public class Students : IStudentModel
{
[Required]
public string Fullname { get; set; } = string.Empty;
// Средний балл по сесии (не более 6 сессий)
public List<string> AverageScore { get; set; } = new List<string>();
public int Id { get; private set; }
public int FormatId { get; set; }
public virtual Formats Format { get; set; } = new();
public DateTime AdmissionDate { get; set; }
public static Students? Create(StudentsDatabase context, StudentBindingModel? model)
{
if (model == null)
{
return null;
}
return new Students()
{
Id = model.Id,
Fullname = model.Fullname,
Format = context.Formats.First(x => x.Id == model.FormatId),
AverageScore = model.AverageScore,
AdmissionDate = model.AdmissionDate.ToUniversalTime()
};
}
public void Update(StudentBindingModel? model, StudentsDatabase context)
{
if (model == null)
{
return;
}
Fullname = model.Fullname;
Format = context.Formats.First(x => x.Id == model.Id);
AverageScore = model.AverageScore.ToList();
AdmissionDate = model.AdmissionDate.ToUniversalTime();
}
public StudentViewModel GetViewModel => new()
{
Id = Id,
Fullname = Fullname,
FormatId = Format.Id,
Format = Format.Name,
AverageScore = AverageScore,
AdmissionDate = AdmissionDate,
};
}
}