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;
            });
        }