public IActionResult Get([FromQuery] AccountQueryParameter p) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(Repo.Query(p))); }
public IEnumerable <Account> Query(AccountQueryParameter p) { var result = context.Accounts.Where(x => string.IsNullOrEmpty(p.Name) || x.Name.ToLowerInvariant().StartsWith(p.Name.ToLowerInvariant())); if (p.Skip != null) { result = result.Skip(p.Skip.Value); } if (p.Take != null) { result = result.Take(p.Take.Value); } return(result.AsEnumerable()); }
public void TestGetSkip0Take1() { // arrange var context = CreateDbContext(); var controller = new AccountsController(context); var p = new AccountQueryParameter() { Skip = 0, Take = 1 }; // act var okResult = controller.Get(p) as OkObjectResult; var data = (okResult.Value as IEnumerable <Account>).ToArray(); // assert Assert.AreEqual(1, data.Count()); Assert.AreEqual(1, data[0].Id); Assert.AreEqual("Steve", data[0].Name); }