public virtual void Hire(Guid id, string name, decimal salary)
        {
            if (State.Id != Guid.Empty)
            {
                throw new InvalidOperationException("A person may only be hired once.");
            }
            if (salary <= 0)
            {
                throw new InvalidOperationException("Negative salaries are not allowed.");
            }

            var employeeHired = new EmployeeHired
            {
                EmployeeId = id,
                Name       = name,
                Salary     = salary,
            };

            Apply(employeeHired);
        }
 public void Apply(EmployeeHired evt)
 {
     Id     = evt.EmployeeId;
     Name   = evt.Name;
     Salary = evt.Salary;
 }