public async Task <IEnumerable <ContactListModel> > Get([FromUri] ContactsPagingModel page) { if (string.IsNullOrEmpty(page.ContactType)) { page.ContactType = ContactTypes.ALL; } try { return(await _contactService.GetContacts(page)); } catch (Exception) { // todo: handle error return(new List <ContactListModel>()); } }
/// <summary> /// Gets the contacts. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> public Task <List <ContactListModel> > GetContacts(ContactsPagingModel page) { var pagedQuery = _context.Contacts.AsQueryable(); if (!string.IsNullOrEmpty(page.SearchWord)) { pagedQuery = pagedQuery.Where(x => x.Name.Contains(page.SearchWord) || x.Address.AddressLine.Contains(page.SearchWord) || x.Address.Zip.Contains(page.SearchWord)); } if (!ContactTypes.ALL.Equals(page.ContactType, StringComparison.InvariantCultureIgnoreCase)) { pagedQuery = pagedQuery.Where(x => x.ContactType.Equals(page.ContactType, StringComparison.InvariantCultureIgnoreCase)); } //int skip = page.CurrentPage * page.ByPage; //pagedQuery = pagedQuery // .OrderBy(x => x.Name) // .Skip(skip) // .Take(page.ByPage); return(ToContactList(pagedQuery).ToListAsync()); }