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(); }
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)); }