public async Task <Wage> Handle(ChangeSalaryCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { throw new BusinessException("Change salary command is invalid"); } var employee = await employeeQuery.Get(request.EmployeeId, cancellationToken); employee.ChangeSalary(request.CountUnit, request.Amount); return(await wageRepository.Create(employee.Id, employee.Wages.Last())); }