예제 #1
0
        public async Task <Unit> Handle(AddEmployeeCommandModel request, CancellationToken cancellationToken)
        {
            var employee    = new Core.Entities.Employee(request.FirstName, request.LastName, request.DateOfBirth, request.Address);
            var jobPosition = await positionRepository.GetJobPositionAsync(request.Position);

            if (jobPosition == null)
            {
                throw new ManagerException(ErrorsMessage.JobPositionDoesNotExist);
            }

            var employeeJobPositionModel = new EmployeeJobPosition(jobPosition, employee);
            await employeeJpRepository.AddEmployeeJobPositionAsync(employeeJobPositionModel);

            employee.MainRole = request.Position;
            employee.Positions.Add(employeeJobPositionModel);

            await employeesRepository.AddEmployeeAsync(employee);

            await employeesRepository.UnitOfWork.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
 public void RemoveEmployeeJobPositionAsync(EmployeeJobPosition model) => context.EmployeeJobPositions.Remove(model);
 public async Task AddEmployeeJobPositionAsync(EmployeeJobPosition model)
 => await context.EmployeeJobPositions.AddAsync(model);