public void AddTest() { //Arange ImageDto imageDto = new ImageDto() { Id = "0", Path = "P0" }; bool isAdded = false; Mock <IUnitOfWork> unitOfWorkMock = new Mock <IUnitOfWork>(); Mock <IRepository <Image> > repositoryMock = new Mock <IRepository <Image> >(); repositoryMock.Setup(repo => repo.Get(It.IsAny <Expression <Func <Image, bool> > >())) .Returns <Expression <Func <Image, bool> > >(predicate => _images.Where(predicate.Compile()).AsQueryable()); repositoryMock.Setup(repo => repo.Add(It.IsAny <Image>())).Callback(() => isAdded = true); unitOfWorkMock.Setup(getRepo => getRepo.GetRepository <Image>()).Returns(repositoryMock.Object); ImageService imageService = new ImageService(unitOfWorkMock.Object); //Act imageService.Add(imageDto); //Assert Assert.True(isAdded); }
public IActionResult SaveEntity(Image image) { if (!ModelState.IsValid) { IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors); return(new BadRequestObjectResult(allErrors)); } else { if (image.Id == 0) { _imageService.Add(image); } else { _imageService.Update(image); } _imageService.Save(); return(new OkObjectResult(image)); } }
public async Task <IActionResult> PostAsync(int id, [FromForm] IFormFile file) { try { long unixTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); string fileName = unixTimestamp + "_" + file.FileName; var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileName); var url = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}/api/Image/ViewImage/{fileName}"; bool result = imageService.Add(new Image(fileName, path, url), itemService.GetItem(id)); if (result) { using (var bits = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(bits); } return(Ok(new { Data = url })); } return(UnprocessableEntity()); } catch (Exception e) { return(StatusCode(500, $"Internal server error: {e}")); } }