Example #1
0
        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()));
        }