public async Task <ItemDTO <List <ContactDTO> > > Get([FromBody] ContactSearchDTO contactSearchDTO) { var result = this._contactService.GetContacts(contactSearchDTO); await this._contactHub.SendGetListMessage(result.Item.Count); return(result); }
public ItemDTO <List <ContactDTO> > GetContacts(ContactSearchDTO contactSearchDTO) { var result = new ItemDTO <List <ContactDTO> >(); try { var contacts = this._contactRepository.GetContacts(contactSearchDTO); result.Item = this._contactDTOBuilder.MapContactsToContactDTOList(contacts); } catch (Exception ex) { result.NotificationDTO.AddErrorMessage($"Error {ex.Message}"); } return(result); }
public List <Contact> GetContacts(ContactSearchDTO contactSearchDTO) { var query = this._addressBookContext.Contacts .Include(x => x.Telephones) .Where(x => contactSearchDTO.Name == null || x.Name == contactSearchDTO.Name) .Where(x => contactSearchDTO.Address == null || x.Address == contactSearchDTO.Address) .Where(x => contactSearchDTO.BirthDate == null || x.BirthDate == contactSearchDTO.BirthDate) .Where(x => contactSearchDTO.Telephone == null || x.Telephones.Any(y => y.Number == contactSearchDTO.Telephone)) .OrderBy(x => x.Id).AsQueryable(); if (contactSearchDTO.PagingDTO != null) { query = query.Skip((contactSearchDTO.PagingDTO.PageNumber - 1) * contactSearchDTO.PagingDTO.PageSize); query = query.Take(contactSearchDTO.PagingDTO.PageSize); } return(query.ToList()); }