public void Given_valid_request_When_AttachEmployee_is_called_Then_should_call_appropiate_methods()
        {
            //Given
            var riskAssessmentService = CreateRiskAssessmentService();
            var attachEmployeeRequest = new AttachEmployeeRequest()
                                                               {
                                                                   EmployeeId = Guid.NewGuid(),
                                                                   RiskAssessmentId = 2
                                                               };

            var mockRiskAssessment = new Mock<GeneralRiskAssessment>();
            _riskAssessmentRepository
                    .Setup(rr => rr.GetByIdAndCompanyId(attachEmployeeRequest.RiskAssessmentId, attachEmployeeRequest.CompanyId))
                    .Returns(mockRiskAssessment.Object);

            var employee = new Employee();
            _employeeRepository
                .Setup(x => x.GetByIdAndCompanyId(attachEmployeeRequest.EmployeeId, attachEmployeeRequest.CompanyId))
                .Returns(employee);

            SetupValidUser(attachEmployeeRequest);

            //When
            riskAssessmentService.AttachEmployeeToRiskAssessment(attachEmployeeRequest);

            //Then
            _riskAssessmentRepository.VerifyAll();
            mockRiskAssessment.Verify(x => x.AttachEmployeeToRiskAssessment(employee, _user));
        }
        public void AttachEmployeeToRiskAssessment(AttachEmployeeRequest request)
        {
            _log.Add(request);

            try
            {
                var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId);
                var employee = _employeeRepository.GetByIdAndCompanyId(request.EmployeeId, request.CompanyId);

                var riskAssessment = _riskAssessmentRepository.GetByIdAndCompanyId(request.RiskAssessmentId, request.CompanyId);
                riskAssessment.AttachEmployeeToRiskAssessment(employee, user);

                _riskAssessmentRepository.SaveOrUpdate(riskAssessment);
            }
            catch (Exception ex)
            {
                _log.Add(ex);
                throw;
            }
        }
 private void SetupValidUser(AttachEmployeeRequest attachEmployeeRequest)
 {
     _userRepository
         .Setup(x => x.GetByIdAndCompanyId(attachEmployeeRequest.UserId, attachEmployeeRequest.CompanyId))
         .Returns(_user);
 }