public async Task UploadDocument_Should_Return_NotNullModel() { // Arrange var fakeStream = new MemoryStream(); var uploadDocumentInputModel = new UploadDocumentInputModel { UploadedBy = 1, DocumentName = "test", DocumentStream = fakeStream, DocumentContentType = "application/pdf" }; var expected = new UploadDocumentReturnModel { DocumentId = 0, OriginalDocumentName = "test" }; // Act var actual = await _documentsFileService.UploadDocument(uploadDocumentInputModel); // Assert actual.Should().NotBeNull(); actual.Should().Equals(expected); }
public async Task <UploadDocumentReturnModel> UploadDocument(UploadDocumentInputModel uploadDocumentInputModel) { using (var transaction = await _unitOfWork.BeginTransactionAsync().ConfigureAwait(false)) { try { DocumentType documentType = await GetDocumentType(uploadDocumentInputModel).ConfigureAwait(false); var uploadFileName = _fileService.UploadFile(uploadDocumentInputModel.DocumentStream, uploadDocumentInputModel.DocumentName); var document = new Document() { OriginalDocumentName = uploadDocumentInputModel.DocumentName, DocumentName = uploadFileName, DocumentTypeId = documentType.TypeId, DocumentPath = _fileService.GetUploadsPath(), DocumentSize = uploadDocumentInputModel.DocumentStream.Length, UploadedBy = uploadDocumentInputModel.UploadedBy, UploadedDate = _dateService.UtcNow }; await _documentsRepository.AddDocumentAsync(document).ConfigureAwait(false); await _unitOfWork.SaveChangesAsync().ConfigureAwait(false); var returnModel = new UploadDocumentReturnModel { DocumentId = document.DocumentId, OriginalDocumentName = document.OriginalDocumentName, }; transaction.Commit(); return(returnModel); } catch (Exception exception) { transaction.Rollback(); throw new ServiceException(ErrorCodes.UploadDocumentException, "Something went wrong while uploading a document", exception); } } }