public async Task <IActionResult> CreateDocumentsAsync([FromForm] AggregatedDocumentInputModel documentsInputModel)
        {
            if (!ModelState.IsValid || documentsInputModel.Files is null)
            {
                return(BadRequest("Invalid parameters"));
            }

            var documents = documentsInputModel.Files.Select(f => new DocumentWithFileInputModel
            {
                File           = f,
                OrganizationID = documentsInputModel.OrganizationID,
                DocumentTypeID = documentsInputModel.DocumentTypeID,
            });
            IEnumerable <IResult <Document> > result;

            try
            {
                result = await _documentService.CreateDocumentsAsync(documents);
            }
            catch (Exception e)
            {
                return(BadRequest("Unable to create document"));
            }

            return(Created(nameof(CreateDocumentsAsync), result));
        }
Exemple #2
0
        public void CreateDocumentsAsync_CatchException_BadRequest()
        {
            var fakeDocument        = getFakeDocument();
            var documentsInputModel = new AggregatedDocumentInputModel
            {
                DocumentTypeID = fakeDocument.DocumentTypeID
            };
            IEnumerable <IResult <Document> > fakeCreateResult = new List <IResult <Document> > {
                Result.Ok(fakeDocument)
            };

            _documentServiceMock.Setup(x => x.CreateDocumentsAsync(It.IsAny <IEnumerable <DocumentWithFileInputModel> >()))
            .Throws(new Exception());

            var documentController = new DocumentsController(_documentServiceMock.Object);
            var actionResult       = documentController.CreateDocumentsAsync(documentsInputModel);

            Assert.AreEqual((int)System.Net.HttpStatusCode.BadRequest, (actionResult.Result as BadRequestObjectResult).StatusCode);
        }
Exemple #3
0
        public void CreateDocumentsAsync_Success()
        {
            var fakeDocument        = getFakeDocument();
            var documentsInputModel = new AggregatedDocumentInputModel
            {
                Files          = new List <IFormFile>(),
                DocumentTypeID = fakeDocument.DocumentTypeID
            };
            IEnumerable <IResult <Document> > fakeCreateResult = new List <IResult <Document> > {
                Result.Ok(fakeDocument)
            };

            _documentServiceMock.Setup(x => x.CreateDocumentsAsync(It.IsAny <IEnumerable <DocumentWithFileInputModel> >()))
            .Returns(Task.FromResult(fakeCreateResult));

            var documentController = new DocumentsController(_documentServiceMock.Object);
            var actionResult       = documentController.CreateDocumentsAsync(documentsInputModel);

            var documentsResult = ((ObjectResult)actionResult.Result).Value as List <IResult <Document> >;

            Assert.AreEqual(1, documentsResult.Count);
            Assert.AreEqual(fakeDocument.ID, documentsResult.First().Value.ID);
        }