public void TestUpdatePrice() { var productRepositoryMock = new Mock <IProductRepository>(); var product = new Product { Id = 1, Name = "Fake Product 1", Price = 10, Likes = 0, Stock = 50 }; productRepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(product); productRepositoryMock.Setup(x => x.Update( It.IsAny <Product>(), It.IsAny <int>() )); var updatePriceDto = new UpdatePriceDto { ProductId = 1, NewPrice = 25 }; var priceChangeLogRepository = new Mock <IPriceChangeLogRepository>(); priceChangeLogRepository.Setup(x => x.Insert(It.IsAny <PriceChangeLog>())).Returns(new PriceChangeLog { Id = 1, DateChange = DateTime.Now, NewPrice = updatePriceDto.NewPrice, OldPrice = product.Price }); var productServiceInstance = new ProductService(productRepositoryMock.Object, priceChangeLogRepository.Object); var res = productServiceInstance.UpdatePrice(updatePriceDto); Assert.AreEqual(updatePriceDto.NewPrice, res.Price); }
public OperationResult <Product> EditPrice(UpdatePriceDto data) { try { var prod = _productService.UpdatePrice(data); return(new OperationResult <Product> { IsSuccess = prod != null, Result = prod, ErrorMessage = prod == null?"Product not found, please verify id":"" }); } catch (Exception e) { return(new OperationResult <Product> { ErrorCode = 500, ErrorMessage = e.Message, IsSuccess = false }); } }
public Product UpdatePrice(UpdatePriceDto data) { var product = _productRepository.Get(data.ProductId); if (product == null) { return(null); } var currentPrice = product.Price; product.Price = data.NewPrice; _productRepository.Update(product, data.ProductId); var log = new PriceChangeLog { DateChange = DateTime.Now, NewPrice = data.NewPrice, OldPrice = currentPrice, ProductId = data.ProductId }; _priceChangeLogRepository.Insert(log); return(product); }
public async Task <ActionResult> EditBookPrice(UpdatePriceDto dto) { await _priceService.EditBookPrice(dto.Id, dto.Price); return(Ok()); }