public IEnumerable <ExpenseViewModel> Search(SearchExpensesViewModel model) { var query = _db.Expenses.Where(e => e.UserId == _currentUser.Id); if (model.CategoryId.HasValue) { query = query.Where(e => e.CategoryId == model.CategoryId); } query = ApplyOrderCriteriion(query, model.Order); query = ApplyTimeSpanCriterion(query, model.TimeSpan); return(query .Skip((model.PageNumber - 1) * model.PageSize) .Take(model.PageSize) .Select(e => new ExpenseViewModel { Id = e.Id, Name = e.Name, CategoryId = e.CategoryId, CategoryName = e.Category.Name, DateTime = e.DateTime, Value = e.Value }) .ToList()); }
public IActionResult Search(SearchExpensesViewModel model) { var expenses = _expenseReader.Search(model); var categories = _categoryReader.GetSelectList(); var page = new ExpensePageViewModel { PageNumber = model.PageNumber, PageSize = model.PageSize, CategoryId = model.CategoryId, Order = model.Order, TimeSpan = model.TimeSpan, Expenses = expenses, Categories = categories }; return(View(page)); }