public IEnumerable<TaskDocumentDto> AddDocumentsToTask(AddDocumentsToTaskRequest request) { var furtherControlMeasureTask = _taskRepository.GetByIdAndCompanyId(request.TaskId, request.CompanyId); var user = _userForAuditingRepository.GetByIdAndCompanyId(request.UserId, request.CompanyId); var documentType = _documentTypeRepository.GetById((long) furtherControlMeasureTask.DefaultDocumentType); var docParameters = request.DocumentLibraryIds.Select(docLibFile => new CreateDocumentParameters() { ClientId = request.CompanyId, CreatedBy = user, CreatedOn = DateTime.Now, Description = docLibFile.Description , DocumentLibraryId = docLibFile.Id, DocumentOriginType = DocumentOriginType.TaskCompleted, DocumentType = documentType, Filename = docLibFile.Filename, FilesizeByte = 0 }).ToList(); furtherControlMeasureTask.AddDocumentsToTask(docParameters, user); _taskRepository.SaveOrUpdate(furtherControlMeasureTask); //flush so that the new Task documents are given ids _taskRepository.Flush(); var selectAddedFiles = furtherControlMeasureTask.Documents .Where(d => docParameters.Select(dp => dp.DocumentLibraryId).Contains(d.DocumentLibraryId)); return new TaskDocumentDtoMapper().Map(selectAddedFiles); }
public void Given_further_control_measure_task__when_AddingDocuments_then_createdBy_and_createddate_are_the_same_as_the_request_object() { //given var fcmTask = new MultiHazardRiskAssessmentFurtherControlMeasureTask(); fcmTask.CreatedBy = new UserForAuditing() {Id = Guid.NewGuid()}; fcmTask.CreatedOn = DateTime.Now.AddDays(-5); fcmTask.Reference = "ref"; fcmTask.MultiHazardRiskAssessmentHazard = MultiHazardRiskAssessmentHazard.Create(new GeneralRiskAssessment(){Reference = "test"}, new Hazard(), fcmTask.CreatedBy); _furtherControlMeasureTaskRepository.Setup(x => x.GetByIdAndCompanyId(It.IsAny<long>(), It.IsAny<long>())) .Returns(() => fcmTask); var expectedCreatedBy = new UserForAuditing() {Id = Guid.NewGuid()}; var expectedCreatedOn = DateTime.Now; _userForAuditingRepository.Setup(x => x.GetByIdAndCompanyId(It.IsAny<Guid>(), It.IsAny<long>())) .Returns(() => expectedCreatedBy); _documentTypeRepository.Setup(x => x.GetById(It.IsAny<long>())) .Returns(() => new DocumentType()); var request = new AddDocumentsToTaskRequest() { CompanyId = 123, DocumentLibraryIds = new List<DocumentLibraryFile>() {new DocumentLibraryFile() {Id = 23, Description = "123", Filename = "image.png"}} , TaskId = 123 , UserId = expectedCreatedBy.Id }; var target = GetTarget(); //when var result = target.AddDocumentsToTask(request); //then Assert.AreEqual(expectedCreatedOn.Date, result.First().CreatedOn.Value.Date); Assert.AreEqual(expectedCreatedBy.Id, result.First().CreatedBy.Id); }