Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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
         });
     }
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        public async Task <ActionResult> EditBookPrice(UpdatePriceDto dto)
        {
            await _priceService.EditBookPrice(dto.Id, dto.Price);

            return(Ok());
        }