public HttpResponseMessage Get(HttpRequestMessage request, int? page, int? pageSize, string filter = null) { int currentPage = page.Value; int currentPageSize = pageSize.Value; int totalSolistens = new int(); return CreateHttpResponse(request, () => { HttpResponseMessage response = null; List<Solisten> solistenList = null; if (!string.IsNullOrEmpty(filter)) { filter = filter.Trim().ToLower(); solistenList = _solistenRepository .GetAll() .OrderBy(s => s.ID) .Where(s => s.SerialNumber.ToLower().Contains(filter.ToLower().Trim())) .ToList(); } else { solistenList = _solistenRepository.GetAll().ToList(); } totalSolistens = solistenList.Count(); solistenList = solistenList.Skip(currentPage * currentPageSize) .Take(currentPageSize) .ToList(); IEnumerable<SolistenModel> solistenModel = Mapper.Map<IEnumerable<Solisten>, IEnumerable<SolistenModel>>(solistenList); PagnationSet<SolistenModel> pagedSet = new PagnationSet<SolistenModel>() { Page = currentPage, TotalCount = totalSolistens, TotalPages = (int)Math.Ceiling((decimal)totalSolistens / currentPageSize), Items = solistenModel }; response = request.CreateResponse<PagnationSet<SolistenModel>>(HttpStatusCode.OK, pagedSet); return response; }); }
public HttpResponseMessage Search(HttpRequestMessage request, int? page, int? pageSize, string filter = null) { int currentPage = page.Value; int currentPageSize = pageSize.Value; int totalClients = new int(); return CreateHttpResponse(request, () => { HttpResponseMessage response = null; List<Client> clientList = null; if (!string.IsNullOrEmpty(filter)) { filter = filter.Trim().ToLower(); clientList = _clientRepository .GetAll() .OrderBy(c => c.ID) .Where(c => c.FirstName.ToLower().Contains(filter) || c.LastName.ToLower().Contains(filter) || c.Email.ToLower().Contains(filter)) .ToList(); } else clientList = _clientRepository .GetAll() .ToList(); totalClients = clientList.Count(); clientList = clientList.Skip(currentPage * currentPageSize) .Take(currentPageSize) .ToList(); IEnumerable<ClientModel> clientModel = Mapper.Map<IEnumerable<Client>, IEnumerable<ClientModel>>(clientList); PagnationSet<ClientModel> pagedSet = new PagnationSet<ClientModel>() { Page = currentPage, TotalCount = totalClients, TotalPages = (int)Math.Ceiling((decimal)totalClients / currentPageSize), Items = clientModel }; response = request.CreateResponse<PagnationSet<ClientModel>>(HttpStatusCode.OK, pagedSet); return response; }); }