private void Apply(PercentageActivityCreatedEvent obj) { this.AggregateId = obj.AggregateId; this.Name = obj.Name; this.ActivityType = ActivityType.Percentage; this.ActivityValue = 0; this.CurrentLevel = 1; }
private ActivityAggregateRoot(Guid activityId, string name, ActivityType activityType) : this() { switch (activityType) { case ActivityType.Percentage: var progressingActivityCreatedEvent = new PercentageActivityCreatedEvent(activityId, name); this.Apply(progressingActivityCreatedEvent); this.RaiseEvent(progressingActivityCreatedEvent); break; case ActivityType.Leveling: var levelingActivityCreationEvent = new LevelingActivityCreatedEvent(activityId, name); this.Apply(levelingActivityCreationEvent); this.RaiseEvent(levelingActivityCreationEvent); break; default: throw new ArgumentOutOfRangeException(nameof(activityType), activityType, null); } }