/// <summary> /// Get All Expenses /// </summary> /// <remarks> /// Sample request: /// /// GET /api/expenses?from=2019-05-05 and type=food /// /// /// </remarks> /// <param name="page"></param> /// <param name="from">Optional, filter by minimum Date</param> /// <param name="to">Optiona, filter by maximum Date</param> /// <param name="type">Optional, filter by expenses type</param> /// <returns>List of Expenses with/without filters</returns> public PaginatedList <ExpensesGetModel> GetAllExpenses(int page, DateTime?from, DateTime?to, Models.Type?type) { IQueryable <Expenses> result = context.Expensess.Include(f => f.Comments); PaginatedList <ExpensesGetModel> paginatedResult = new PaginatedList <ExpensesGetModel>(); paginatedResult.CurrentPage = page; if (from != null) { result = result.Where(f => f.Date >= from); } if (to != null) { result = result.Where(f => f.Date <= to); } if (type != null) { result = result.Where(f => f.Type.Equals(type)); } paginatedResult.NumberOfPages = (result.Count() - 1) / PaginatedList <ExpensesGetModel> .EntriesPerPage + 1; result = result .Skip((page - 1) * PaginatedList <ExpensesGetModel> .EntriesPerPage) .Take(PaginatedList <ExpensesGetModel> .EntriesPerPage); paginatedResult.Entries = result.Select(f => ExpensesGetModel.FromExpenses(f)).ToList(); return(paginatedResult); }
/// <summary> /// Get All Expenses /// </summary> /// <remarks> /// Sample request: /// /// GET /api/expenses?from=2019-05-05&&type=food /// /// /// </remarks> /// <param name="from">Optional, filter by minimum Date</param> /// <param name="to">Optiona, filter by maximum Date</param> /// <param name="type">Optional, filter by expenses type</param> /// <returns>List of Expenses with/without filters</returns> public IEnumerable <ExpensesGetModel> GetAll(DateTime?from, DateTime?to, Models.Type?type) { IQueryable <Expenses> result = context.Expensess.Include(f => f.Comments); if ((from == null && to == null) && type == null) { return(result.Select(f => ExpensesGetModel.FromExpenses(f))); } if (from != null) { result = result.Where(f => f.Date >= from); } if (to != null) { result = result.Where(f => f.Date <= to); } if (type != null) { result = result.Where(f => f.Type.Equals(type)); } return(result.Select(f => ExpensesGetModel.FromExpenses(f))); }