protected internal virtual MartialArtist AcceptPromotion(Promotion promotion) { _promotions.Add(promotion); Rank = promotion.Rank; DomainEvents.Raise(new StudentPromoted(promotion.Instructor.Id,this.Id,promotion.Rank.Belt,promotion.Rank.Stripes)); return this; }
public void Promote(MartialArtist student, Rank rank) { var promotion = new Promotion {AwardedOn = DateTime.Now, Instructor = this, Rank = rank}; student.AcceptPromotion(promotion); }