using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace BrightGlimmer.Domain { [Table("Students")] public class Student : Entity { [NotMapped] private readonly int MAX_STUDENT_NUMBER = 100000000; public int StudentNumber { get; private set; } public string FirstName { get; set; } public string MiddleName { get; set; } public string LastName { get; set; } public string Email { get; set; } public Address Address { get; private set; } public string ProfilePictureUrl { get; set; } private readonly List phones = new List(); public IReadOnlyList Phones => phones; private readonly List assignedCourses = new List(); public IReadOnlyList AssignedCourses => assignedCourses; private Student() { } public Student(string firstName, string lastName, string email, List phones, Address address) : base() { StudentNumber = new Random().Next(MAX_STUDENT_NUMBER); /* TODO: Optimize student number creation */ FirstName = firstName; LastName = lastName; Email = email; Address = address; this.phones = phones; } public void Update(Student student) { FirstName = student.FirstName; MiddleName = student.MiddleName; LastName = student.LastName; Email = student.Email; if () } public void AddPhone(Phone phone) { phones.Add(phone); } public void AddAssignedCourse(AssignedCourse assignedCourse) { assignedCourses.Add(assignedCourse); } } }