public IActionResult Get([FromQuery] TradeQueryParameter p) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(Repo.Query(p))); }
public void TestGetSkip0Take1() { // arrange var context = CreateDbContext(); var controller = new TradesController(context); var p = new TradeQueryParameter() { Skip = 0, Take = 1 }; // act var okResult = controller.Get(p) as OkObjectResult; var data = (okResult.Value as IEnumerable <Trade>).ToArray(); // assert Assert.AreEqual(1, data.Count()); Assert.AreEqual(1, data[0].Id); Assert.AreEqual(1, data[0].AccountId); }
public IEnumerable <Trade> Query(TradeQueryParameter p) { var result = context.Trades.AsQueryable(); if (p.DateCreated != null) { result = result.Where(x => x.DateCreated >= p.DateCreated.Value); } if (p.Symbol != null) { result = result.Where(x => x.Symbol == p.Symbol); } if (p.Action != null) { result = result.Where(x => x.Action == p.Action.Value); } if (p.AccountId != null) { result = result.Where(x => x.AccountId == p.AccountId.Value); } if (p.Skip != null) { result = result.Skip(p.Skip.Value); } if (p.Take != null) { result = result.Take(p.Take.Value); } return(result.AsEnumerable()); }