using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using AutoMapper; using AutoMapper.QueryableExtensions; using InventoryTraker.Web.ActionResults; using InventoryTraker.Web.Core; using InventoryTraker.Web.Data; using InventoryTraker.Web.Models; namespace InventoryTraker.Web.Controllers { public class TransactionController : ControllerBase { private readonly AppDbContext _context; public TransactionController(AppDbContext context) { _context = context; } public ActionResult Index() { return View(); } public JsonResult All() { var viewModels = _context.Transactions .ProjectTo() .ToArray(); return BetterJson(viewModels); } public JsonResult GetTransactions(int pageNumber, int pageSize) { var viewModels = _context.Transactions .OrderByDescending(t => t.Timestamp) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ProjectTo() .ToArray(); var count = _context.Transactions.Count(); return BetterJson(new {totalItems = count, transactions = viewModels}); } } }