예제 #1
0
        public void UpdateDocument_ReturnUpdateItem_WhenStateIsValid()
        {
            //Arrange
            var dbContext = new DocumentDbContext();

            dbContext.Categories = GetQueryableMockDbSetCategory();
            dbContext.Documents  = GetQueryableMockDbSetDocument();

            var categoryRepo = new CategoryRepo(string.Empty, dbContext);
            var documentRepo = new DocumentRepo(string.Empty, dbContext);
            var controller   = new DocumentController(categoryRepo, documentRepo);

            UpdateDocumentModel updateDocumentModel = new UpdateDocumentModel {
                Id = 1, Title = "Đời sống con người", Description = "Nói về đời sống con người", CategoryId = 1, Cover = "", PublishYear = 2013
            };

            //Act
            var result = controller.UpdateDocument(updateDocumentModel);

            //Assert
            Assert.IsType <OkObjectResult>(result);

            var okObjectResult = result as OkObjectResult;

            Assert.IsType <Document>(okObjectResult.Value);

            var documentObject = okObjectResult.Value as Document;

            Assert.Equal(updateDocumentModel.Id, documentObject.Id);
            Assert.Equal(updateDocumentModel.Title, documentObject.Title);
            Assert.Equal(updateDocumentModel.Description, documentObject.Description);
            Assert.Equal(updateDocumentModel.CategoryId, documentObject.CategoryId);
            Assert.Equal(updateDocumentModel.Cover, documentObject.Cover);
            Assert.Equal(updateDocumentModel.PublishYear, documentObject.PublishYear);
        }
예제 #2
0
        public async Task <IActionResult> Update([FromBody] UpdateDocumentModel model)
        {
            return(await ProcessAsync(async() =>
            {
                var document = new DocumentModel
                {
                    Id = model.Id,
                    Title = model.Title,
                    Description = model.Description,
                    TypeId = model.TypeId,
                    Restricted = model.Restricted
                };

                await _documentService.Update(document);

                return Ok("Document updated successfully.");
            }));
        }
예제 #3
0
        public async Task <IActionResult> UpdateDocument([FromBody] UpdateDocumentModel model)
        {
            try
            {
                if (await CanAccessDocument(model.Id, true))
                {
                    await _documentService.UpdateDocument(model);

                    return(Ok());
                }

                return(PermissionError());
            }
            catch (Exception e)
            {
                return(HandleException(e));
            }
        }
예제 #4
0
        public async Task <IActionResult> UpdateDocument([FromBody] UpdateDocumentRequest request)
        {
            var updateDocumentResponse = new UpdateDocumentResponse();

            if (request.File == null || request.File.Length <= 0)
            {
                return(new BadRequestObjectResult(new { Message = "Requested file can not be empty." }));
            }
            var filePath = Path.GetTempFileName();
            var fileName = Path.GetFileName(filePath);

            if (!FileTypes.IsValidContentType(fileName))
            {
                ModelState.AddModelError(fileName, "File Type Not Supported. Only Word, Pdf, Jpg and Png file types uploadable.");
            }
            if (request.File.Length > 1048576)
            {
                ModelState.AddModelError(fileName, "Maximum File size of 1 Mb exceeded.");
            }
            if (ModelState.Values.Sum(c => c.Errors.Count) > 0)
            {
                updateDocumentResponse.HandleValidation(ModelState);
                return(Ok(updateDocumentResponse));
            }
            var updateModel = new UpdateDocumentModel
            {
                DocumentId     = request.DocumentId,
                ProjectId      = request.ProjectId,
                DocumentTypeId = request.DocumentTypeId,
                TagId          = request.TagId,
                UploadedFile   = new FileModel
                {
                    Content = request.File.OpenReadStream(),
                    Name    = fileName
                }
            };

            var commandHandlerResponse = await _mediator.Send(updateModel);

            updateDocumentResponse.HandleSuccess(commandHandlerResponse);
            return(Ok(updateDocumentResponse));
        }
예제 #5
0
        public IActionResult UpdateDocument([FromBody] UpdateDocumentModel updateDocumentModel)
        {
            //1. Validate Model
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //2. Check document exist
            var currentDocument = _documentRepo.GetDocument(updateDocumentModel.Id);

            if (currentDocument == null)
            {
                return(NotFound("DocumentNotExist"));
            }

            //3. Check category exist
            if (updateDocumentModel.CategoryId.HasValue)
            {
                var currentCategory = _categoryRepo.GetCategory(updateDocumentModel.CategoryId.Value);
                if (currentCategory == null)
                {
                    return(NotFound("CategoryNotExist"));
                }
            }

            //4. Update document
            Document updateDocument = new Document()
            {
                Id          = updateDocumentModel.Id,
                CategoryId  = updateDocumentModel.CategoryId,
                Title       = updateDocumentModel.Title,
                Description = updateDocumentModel.Description,
                Cover       = updateDocumentModel.Cover,
                PublishYear = updateDocumentModel.PublishYear
            };

            var response = _documentRepo.UpdateDocument(updateDocument);

            return(Ok(response));
        }
예제 #6
0
        public void UpdateDocument_ReturnNotFoundResult_WhenCategoryNotFound()
        {
            //Arrange
            var dbContext = new DocumentDbContext();

            dbContext.Categories = GetQueryableMockDbSetCategory();
            dbContext.Documents  = GetQueryableMockDbSetDocument();

            var categoryRepo = new CategoryRepo(string.Empty, dbContext);
            var documentRepo = new DocumentRepo(string.Empty, dbContext);
            var controller   = new DocumentController(categoryRepo, documentRepo);

            UpdateDocumentModel updateDocumentModel = new UpdateDocumentModel {
                Id = 1, Title = "Đời sống con người", Description = "Nói về đời sống con người", CategoryId = 3, Cover = "", PublishYear = 2013
            };

            //Act
            var result = controller.UpdateDocument(updateDocumentModel);

            //Assert
            Assert.IsType <NotFoundObjectResult>(result);
        }