public virtual void ChangeSalary(decimal salary, string reason) { if (State.Terminated) { throw new InvalidOperationException("This employee has been terminated."); } if (State.Id == Guid.Empty) { throw new InvalidOperationException("The employee must be hired."); } if (salary < 0) { throw new InvalidOperationException("Negative salaries are not allowed."); } var salaryChanged = new SalaryChanged { Salary = salary, Reason = reason }; Apply(salaryChanged); }
public void Apply(SalaryChanged evt) { Salary = evt.Salary; }