public async Task <ActionResult> MakeBid(int id, [FromBody] MakeBidResource bid) { var lotToUpdate = await _lotService.GetLotById(id); if (lotToUpdate.Bid >= bid.Bid) { return(BadRequest("new bid must be bigger then old")); } LotResource lot = new LotResource(); lot.Bid = bid.Bid; lot.BidUser = bid.UserId; await _lotService.MakeBid(id, lot); return(NoContent()); }
public async Task MakeBid(int lotToBeUpdatedId, LotResource lot) { var validator = new MakeBidResourceValidator(); var validationResult = await validator.ValidateAsync(lot); if (!validationResult.IsValid) { throw new ValidationException(validationResult.Errors); } var actualLot = await _unitOfWork.Lots.GetByIdAsync(lotToBeUpdatedId); if (actualLot == null) { throw ExceptionBuilder.Create("Lot with provided Id does not exist"); } actualLot.Bid = (lot.Bid != 0) ? lot.Bid : actualLot.Bid; actualLot.BidUser = (!string.IsNullOrEmpty(lot.BidUser)) ? lot.BidUser : actualLot.BidUser; await _unitOfWork.CommitAsync(); }