using Ardalis.GuardClauses; using PracticeCalendar.Domain.Common; using System.Diagnostics.Contracts; namespace PracticeCalendar.Domain.Entities { /// /// Attendee to an event /// public class Attendee: EntityBase { public Attendee(string name, string emailAddress) { Guard.Against.NullOrEmpty(name); Guard.Against.NullOrEmpty(emailAddress); Name = name; EmailAddress = emailAddress; } public int PracticeEventId { get; private set; } public string Name { get; set; } = string.Empty; public string EmailAddress { get; set; } = string.Empty; public bool IsAttending { get; private set; } /// /// Set if the Attendee is attending /// /// public void SetIsAttending (bool isAttending) { this.IsAttending = isAttending; //TODO - raise event } /// /// Assign Attendee to the practice event /// /// public void AssignToEvent(int practiceEventId) { this.PracticeEventId = practiceEventId; } } }