public async Task <IActionResult> GetContacts([FromQuery] ContactParams userParams) { var values = await _repository.GetContacts(userParams); Response.AddPagination(values.CurrentPage, values.PageSize, values.TotalCount, values.TotalPages); return(Ok(values)); }
public async Task <PagedList <Contact> > GetContacts(ContactParams contactParams) { var contactsList = _context.Contacts.AsQueryable(); contactsList = contactsList.OrderByDescending(c => c.CreatedOn); return(await PagedList <Contact> .CreateAsync(contactsList, contactParams.PageNumber, contactParams.PageSize)); }
public async Task <IActionResult> GetContacts([FromQuery] ContactParams contactParams) { var response = await this._contactService.GetContactsListAsync(contactParams); Response.AddPagination(response.CurrentPage, response.PageSize, response.TotalCount, response.TotalPages); return(Ok(response)); }
public async Task <IActionResult> GetContacts([FromQuery] ContactParams contactParams) { var contacts = await _contactRepository.GetContacts(contactParams); var contactsToReturn = _mapper.Map <IEnumerable <ContactForListDto> >(contacts); Response.AddPagination(contacts.CurrentPage, contacts.PageSize, contacts.TotalCount, contacts.TotalPages); return(Ok(contactsToReturn)); }
public async Task <PagedList <ContactListData> > GetContactsListAsync(ContactParams model) { var contactsListData = this.Context.Contacts .Select(c => new ContactListData { Id = c.Id, Name = c.Name }) .OrderBy(c => c.Name); return(await PagedList <ContactListData> .CreateAsync(contactsListData, model.PageNumber, model.PageSize)); }
public async Task <PagedList <Contact> > GetContacts(ContactParams contactParams) { var contacts = _context.Contacts.OrderByDescending(u => u.Id).AsQueryable(); if (!string.IsNullOrEmpty(contactParams.SearchText)) { contacts = contacts.Where( x => (EF.Functions.Like(x.FirstName, "%" + contactParams.SearchText + "%") || EF.Functions.Like(x.LastName, "%" + contactParams.SearchText + "%") || EF.Functions.Like(x.Address, "%" + contactParams.SearchText + "%") || EF.Functions.Like(x.TelephoneNumber, "%" + contactParams.SearchText + "%") ) ); } return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize)); }
public async Task <PagedList <Contact> > SearchContacts(ContactParams contactParams) { var contacts = dataContext.Contact.AsQueryable(); if (contactParams.ContactId > 0) { contacts = contacts.Where(c => c.ContactId == contactParams.ContactId); return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize)); } if (!String.IsNullOrEmpty(contactParams.FirstName)) { contacts = contacts.Where(c => c.FirstName.Contains(contactParams.FirstName)); } if (!String.IsNullOrEmpty(contactParams.MiddleName)) { contacts = contacts.Where(c => c.MiddleName.Contains(contactParams.MiddleName)); } if (!String.IsNullOrEmpty(contactParams.LastName)) { contacts = contacts.Where(c => c.LastName.Contains(contactParams.LastName)); } if (!String.IsNullOrEmpty(contactParams.NameTitle)) { contacts = contacts.Where(c => c.NameTitle.Contains(contactParams.NameTitle)); } if (contactParams.AccountId > 0) { contacts = contacts.Where(c => c.AccountId == contactParams.AccountId); } if (contactParams.CreatedAt != null) { contacts = contacts.Where(c => c.CreatedAt >= contactParams.CreatedAt); } return(await PagedList <Contact> .CreateAsync(contacts, contactParams.PageNumber, contactParams.PageSize)); }
public async Task <IActionResult> SearchContacts([FromQuery] ContactParams contactParams) { try { var contacts = await contactManager.SearchContacts(contactParams); if (contacts != null) { PagedList <ContactReturnDTO> contactsToReturn = new PagedList <ContactReturnDTO>(); foreach (var c in contacts) { ContactReturnDTO cr = new ContactReturnDTO { AccountId = c.AccountId, ContactId = c.ContactId, FirstName = c.FirstName, LastName = c.LastName, MiddleName = c.MiddleName, NameTitle = c.NameTitle, Notes = c.Notes, SelectedAddressId = c.SelectedAddressId }; contactsToReturn.Add(cr); } Response.AddPagination(contactsToReturn.CurrentPage, contactsToReturn.PageSize, contactsToReturn.TotalCount, contactsToReturn.TotalPages); return(Ok(contactsToReturn)); } return(NotFound()); } catch (Exception) { throw; } }
public DataResult GetDataAsync([FromBody] ContactParams searchParam) { ContactServices contactManager = new ContactServices(); return(contactManager.GetCSVFile(searchParam)); }
public DataResult GetCSVFile(ContactParams searchParam) { string currentPath = Directory.GetCurrentDirectory(); List <SampleData> dataList = new List <SampleData>(); bool isFirtLine = true; using (var reader = new StreamReader(currentPath + "/SampleData.csv")) { while (!reader.EndOfStream) { var line = reader.ReadLine(); if (isFirtLine) { isFirtLine = false; continue; } var values = line.Split(','); if (values.Length > 10) { if (!string.IsNullOrEmpty(searchParam.SearchKey)) { if ((!string.IsNullOrEmpty(values[0]) && values[0].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) || (!string.IsNullOrEmpty(values[1]) && values[1].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) || (!string.IsNullOrEmpty(values[9]) && values[9].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim())) || (!string.IsNullOrEmpty(values[7]) && values[7].ToLower().Trim().Contains(searchParam.SearchKey.ToLower().Trim()))) { /// <summary> /// We can clean inpudate data here to make sure that we get correct data, such as: email, phone /// For this case, I just clean email value /// </summary> if (ContactUtilities.IsValidEmail(values[9])) { dataList.Add(new SampleData { FirstName = values[0], LastName = values[1], CompanyName = values[2], Address = values[3], City = values[4], State = values[5], Post = values[6], Phone1 = values[7], Phone2 = values[8], Email = values[9], Web = values[10], }); } } } else { if (ContactUtilities.IsValidEmail(values[9])) { dataList.Add(new SampleData { FirstName = values[0], LastName = values[1], CompanyName = values[2], Address = values[3], City = values[4], State = values[5], Post = values[6], Phone1 = values[7], Phone2 = values[8], Email = values[9], Web = values[10], }); } } } } } int itemTotal = dataList.Count; int pageTotal = itemTotal / searchParam.PageSize; List <SampleData> dataResult = new List <SampleData>(); if (!string.IsNullOrEmpty(searchParam.SearchKey)) { dataResult = dataList.Skip(0).Take(searchParam.PageSize).ToList(); } else { int realPageIndex = searchParam.PageIndex - 1; dataResult = dataList.Skip(realPageIndex * searchParam.PageSize).Take(searchParam.PageSize).ToList(); } return(new DataResult { Contacts = dataResult, PageTotal = pageTotal, ItemTotal = itemTotal }); }