private void Apply(EmployeeHired @event) { var employee = new Employee(@event.EmployeeId, new FullName(@event.FirstName, @event.LastName), new NationalCode(@event.NationalCode)); _employees.Add(employee); }
public void Hire_HiredEmployeesHaveEvents(Guid id, string name, decimal salary) { var expected = new EmployeeHired { EmployeeId = id, Name = name, Salary = salary, }; sut.Hire(id, name, salary); sut.NewEvents.Last() .Should().BeEquivalentTo(expected, opt => opt.IncludingFields()); }
/// <summary> /// Hires a new employee. /// </summary> public void HireEmployee() { this.Log("Company is hiring employee"); var randomIndex = Random.Range(0, EmployeeTemplates.Count); var employee = EmployeeTemplates.ElementAt(randomIndex); employee.Generate(); var employeeFactory = new EmployeeFactory(employee.Value, gameObject); var employeeObject = employeeFactory.Create(); var employeeComponent = employeeObject.GetComponent <EmployeeComponent>(); employeeComponent.SetCompany(this); Employees.Add(employeeComponent); EmployeeHired?.Invoke(this, new EmployeeHiredEventArgs(employeeComponent, HiringCost)); }
/// <inheritdoc /> public async Task ProjectAsync(EmployeeHired @event) { var company = await _companyRepository .AsQuery() .Include(q => q.Employees) .FirstOrDefaultAsync(q => q.Id == @event.AggregateId); if (company.Employees.Any(q => q.Id == @event.EmployeeId)) { return; } company.Employees.Add(new Employee { Id = @event.EmployeeId, FirstName = @event.FirstName, LastName = @event.LastName, NationalCode = @event.NationalCode }); await _companyRepository.SaveChangesAsync(); }
private void OnEmployeeHired(Employee employee) => EmployeeHired?.Invoke(this, new EmployeeEventArgs(employee));
public void On(EmployeeHired evt) { this.Id = evt.EmployeeId; }