コード例 #1
0
 public IActionResult Get([FromQuery] TradeQueryParameter p)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     return(Ok(Repo.Query(p)));
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }