using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; namespace TicketManager.Models { public class AppUser { public Guid Id { get; set; } [Required] [StringLength(50)] [Display(Name = "First Name")] public string FirstName { get; set; } [Required] [StringLength(50)] [Display(Name = "Last Name")] public string LastName { get; set; } [Display(Name = "Full Name")] public string FullName => $"{FirstName} {LastName}"; [StringLength(200)] [Display(Name = "Bio")] public string Presentation { get; set; } [DataType(DataType.EmailAddress)] public string Email { get; set; } [DataType(DataType.PhoneNumber)] public string Phone { get; set; } [DataType(DataType.Date)] [Display(Name = "Member since"), DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] public DateTime Created_at { get; private set; } = DateTime.Now; // [Display(Name = "Avatar")] // public byte[] Picture { get; set; } // public Role Role { get; set; } public List Assignments { get; set; } = new List(); [Display(Name = "Activity")] public List Edits { get; set; } = new List(); // Methods public List GetProjects() { return Assignments.Select(a => a.Project).ToList(); } // public Project GetProject(int id) // { // return Assignments.Single(a => a.Project.Id == id).Project; // } // public List GetProjectMembers(int id) // { // return GetProject(id).GetMembers(); // } public List GetTickets() { List tickets = new List(); GetProjects().ForEach(p => tickets.Concat(p.Tickets)); return tickets; } } }