public IActionResult Put(int id, [FromBody] PutTradeParameter putTrade) { putTrade.Id = id; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var validator = new PutTradeValidator(Context, putTrade); var result = validator.Validate(); if (result.Any()) { return(BadRequest(result)); } var trade = Repo.Update(putTrade); if (trade == null) { return(NotFound()); } return(Ok(trade)); }
public void TestUpdateAccountIdValidationError() { // arrange var context = CreateDbContext(); var controller = new TradesController(context); var trade = new PutTradeParameter { Id = 2, AccountId = 1, Action = TradeActions.Sell, Quantity = 10, Symbol = "GE" }; // act var result = controller.Put(2, trade); var brRequest = result as BadRequestObjectResult; var data = (brRequest.Value as IEnumerable <ValidationResult>).ToArray(); // assert Assert.IsNotNull(brRequest); Assert.AreEqual(400, brRequest.StatusCode); Assert.AreEqual("AccountId cannot be modified", data[0].ErrorMessage); Assert.AreEqual(2, trade.Id); }
public PutTradeValidator(TradePMRDbContext context, PutTradeParameter trade) { this.context = context; this.trade = trade; }