public List<DocumentDto> AttachDocumentsToRiskAssessment(AttachDocumentsToRiskAssessmentRequest request)
        {
            _log.Add(request);

            try
            {
                var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId);
                var riskAssessment = _riskAssessmentRepository.GetByIdAndCompanyId(request.RiskAssessmentId, request.CompanyId);

                var documents = CreateRiskAssessmentDocumentsToAttach(request, user);
                riskAssessment.AttachDocumentToRiskAssessment(documents, user);

                _riskAssessmentRepository.SaveOrUpdate(riskAssessment);

                //flush so that the new Task documents are given ids
                _riskAssessmentRepository.Flush();

                var selectAddedFiles = riskAssessment.Documents
                    .Where(d => documents.Select(dp => dp.DocumentLibraryId).Contains(d.DocumentLibraryId));

                return new DocumentDtoMapper().Map(selectAddedFiles).ToList();
            }
            catch (Exception ex)
            {
                _log.Add(ex);
                throw;
            }
        }
 private IEnumerable<RiskAssessmentDocument> CreateRiskAssessmentDocumentsToAttach(AttachDocumentsToRiskAssessmentRequest request, UserForAuditing user)
 {
     var documents = (from createDocumentRequest in request.DocumentsToAttach
                      let documentType = _documentTypeRepository.GetById((long)createDocumentRequest.DocumentType)
                      select RiskAssessmentDocument.Create(new CreateDocumentParameters
                      {
                          ClientId = request.CompanyId,
                          DocumentLibraryId =
                              createDocumentRequest.DocumentLibraryId,
                          Filename = createDocumentRequest.Filename,
                          Extension = createDocumentRequest.Extension,
                          FilesizeByte = createDocumentRequest.FilesizeByte,
                          Description = createDocumentRequest.Description,
                          DocumentType = documentType,
                          CreatedOn = DateTime.Now,
                          CreatedBy = user
                      })).ToList();
     return documents;
 }
        private void CreateRiskAssessmentWithDocuments(int amountOfDocumentsToAddToRiskAssessment)
        {
            var newRiskAssementId = CreateRiskAssessment();
            var riskAssessmentAttachmentService = ObjectFactory.GetInstance<IRiskAssessmentAttachmentService>();

            var documentsToAttach = new List<CreateDocumentRequest>();
            for (int i = 0; i < amountOfDocumentsToAddToRiskAssessment; i++)
            {
                var randomId = new Random().Next(2500);
                string titleDescription = "Test " + randomId;
                documentsToAttach.Add(new CreateDocumentRequest()
                {
                    Title = titleDescription,
                    Description = titleDescription,
                    DocumentLibraryId = i,
                    Filename = "Test File Name" + randomId,
                    DocumentType = DocumentTypeEnum.GRADocumentType,
                    DocumentOriginType = DocumentOriginType.TaskCompleted,
                    Extension = ".doc",
                    
                });    
            }
            
            
            var request = new AttachDocumentsToRiskAssessmentRequest()
                              {
                                  CompanyId = companyId,
                                  RiskAssessmentId = newRiskAssementId,
                                  UserId = GetRandomUserId(),
                                  DocumentsToAttach = documentsToAttach
                              };
            riskAssessmentAttachmentService.AttachDocumentsToRiskAssessment(request);
            ObjectFactory.GetInstance<IBusinessSafeSessionManager>().Session.Flush();
        }