public virtual bool RemoveCar(RemoveCarRequest request)
        {
            var carToRemove = this.GetSingleStock <RemoveCarRequest>(request);

            if (carToRemove != null && carToRemove.StockLevel > 0)
            {
                carToRemove.StockLevel--;
                this.SaveChanges();
                return(true);
            }
            return(false);
        }
 public IActionResult RemoveCar([FromBody] RemoveCarRequest request)
 {
     if (!validationService.ValidateCarRequest(request))
     {
         logger.LogError("Remove Car Request validation failed.");
         return(BadRequest("Cannot Remove Car. Check input values."));
     }
     if (apiContext.RemoveCar(request))
     {
         return(Ok());
     }
     logger.LogError("Car not found or stock is already zero.");
     return(BadRequest("Car not found or stock is already zero."));
 }
        public void RemoveCar_Should_DecreaseStockLevel_When_SameCarIsFound(string dealerCode, string make, string model, int year, int expectedStockLevel)
        {
            //arrange
            var newCar = new RemoveCarRequest()
            {
                DealerCode = dealerCode, Make = make, Model = model, Year = year
            };

            //act
            var result = _testee.RemoveCar(newCar);

            //assert
            result.Should().BeTrue();
            _testee.Cars.Count().Should().Be(7);
            _testee.Cars.Where(x => x.DealerCode == dealerCode && x.Make == make && x.Model == model && x.Year == year).FirstOrDefault().StockLevel.Should().Be(expectedStockLevel);
            Dispose();
        }
Пример #4
0
        public async Task <ActionResult> Remove([FromBody] RemoveCarRequest request)
        {
            APIResponse <string> response = new APIResponse <string>();

            try
            {
                response.Value = await _carService.RemoveAsync(_userManager.GetUserId(User), request.CarID);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.ErrorMessage = ex.Message;
                _logger.LogError(ex.Message);
            }

            return(BadRequest(response));
        }